JSP'de URL'den parametreleri nasıl alabilirim?
Örneğin ben www.somesite.com/Transaction_List.jsp?accountID=5
5 almak istiyorum
bir URL
var. Oturumlar veya benzer bir şey var gibi bir request.getAttribute ("accountID") var mı?
JSP'de URL'den parametreleri nasıl alabilirim?
Örneğin ben www.somesite.com/Transaction_List.jsp?accountID=5
5 almak istiyorum
bir URL
var. Oturumlar veya benzer bir şey var gibi bir request.getAttribute ("accountID") var mı?
Yanıtlar:
Bir GET isteğinde, istek parametreleri sorgu dizesinden (URL'deki soru işaretini izleyen veriler) alınır. Örneğin, http://hostname.com?p1=v1&p2=v2 URL'si iki istek parametresi içerir - - p1 ve p2. Bir POST isteğinde, istek parametreleri hem sorgu dizesinden hem de isteğin gövdesinde kodlanan kaydedilmiş verilerden alınır.
Bu örnek, oluşturulan çıktıya bir istek parametresinin değerinin nasıl dahil edileceğini gösterir:
Hello <b><%= request.getParameter("name") %></b>!
Sayfaya URL ile erişildiyse:
http://hostname.com/mywebapp/mypage.jsp?name=John+Smith
elde edilen çıktı:
Hello <b>John Smith</b>!
Sorgu dizesinde ad belirtilmezse, çıktı şöyle olur:
Hello <b>null</b>!
Bu örnek, bir komut dosyasında bir sorgu parametresinin değerini kullanır:
<%
if (request.getParameter("name") == null) {
out.println("Please enter your name.");
} else {
out.println("Hello <b>"+request. getParameter("name")+"</b>!");
}
%>
Hakkında Örtülü Nesneler arasında Birleştirilmiş İfade Dili , Java EE 5 Eğitimi yazıyor:
Örtülü Nesneler
JSP ifade dili bir dizi örtük nesne tanımlar:
pageContext
: JSP sayfasının içeriği. Aşağıdakiler dahil çeşitli nesnelere erişim sağlar:
servletContext
: JSP sayfasının sunucu uygulaması ve aynı uygulamada bulunan tüm web bileşenleri için bağlam. Bkz. Web Bağlamına Erişim.session
: İstemci için oturum nesnesi. Bkz. İstemci Durumunu Koruma.request
: JSP sayfasının yürütülmesini tetikleyen istek. Bkz . İsteklerden Bilgi Alma .response
: JSP sayfası tarafından döndürülen yanıt. Bkz. Yanıtların Oluşturulması.- Ayrıca, aşağıdaki nesnelere kolay erişim sağlayan birkaç örtük nesne de mevcuttur:
param
: Bir istek parametresi adını tek bir değerle eşlerparamValues
: İstek parametre adını bir değer dizisiyle eşlerheader
: Bir istek üstbilgisi adını tek bir değerle eşleştirirheaderValues
: Bir istek üstbilgisi adını bir değer dizisiyle eşlercookie
: Bir çerez adını tek bir çerezle eşlerinitParam
: Bağlam başlatma parametre adını tek bir değerle eşler- Son olarak, Kapsam Nesnelerini Kullanma bölümünde açıklanan çeşitli kapsamlandırılmış değişkenlere erişime izin veren nesneler vardır.
pageScope
: Sayfa kapsamındaki değişken adlarını değerleriyle eşlerrequestScope
: İstek kapsamındaki değişken adlarını değerleriyle eşlersessionScope
: Oturum kapsamındaki değişken adlarını değerleriyle eşlerapplicationScope
: Uygulama kapsamındaki değişken adlarını değerleriyle eşler
İlginç parçalar koyu renktedir :)
Bu nedenle, sorunuzu cevaplamak için, soruna şu şekilde erişebilmeniz gerekir (EL kullanarak):
${param.accountID}
Veya JSP Komut Dosyalarını kullanarak (önerilmez):
<%
String accountId = request.getParameter("accountID");
%>
EL (JSP İfade Dili) kullanın:
${param.accountID}
<c:out value="${param.accountID}" />
Bunu yapmak için JSTL kullanın .
Buraya yorum ekleyebilirsem ...
<c:out value="${param.accountID}"></c:out>
benim için çalışmıyor (0 yazdırıyor).
Bunun yerine, bu çalışır:
<c:out value="${param['accountID']}"></c:out>
request.getParameter("accountID")
aradığınız şey bu. Bu, Java Servlet API'sinin bir parçasıdır. Daha fazla bilgi için http://java.sun.com/j2ee/sdk_1.3/techdocs/api/javax/servlet/ServletRequest.html adresine bakın .
konu kaydını, object_id ile silmek istediğiniz örnek
@RequestMapping(value="subject_setup/delete/{subjectid}",method = RequestMethod.GET)
public ModelAndView delete(@PathVariable int subjectid) {
subjectsDao.delete(subjectid);
return new ModelAndView("redirect:/subject_setup");
}
ve parametre sorgunuzdaki giriş için kullanılacaktır
public int delete(int subjectid) {
String sql = "update tbl_subject set isdeleted= '1' where id = "+subjectid+"";
return template.update(sql);
}
www.somesite.com/Transaction_List.jsp?accountID=5
Bunun için java'da URL
bir yöntem çağrısı var request.getParameter
, eğer burada bir sayıya döküm yapmak istiyorsanız int
, benzer şekilde içine dökülen dize değeri için string
. yani gereksinimi için, sadece aşağıdaki satırın altındaki kopyasını,
int accountId =(int)request.getParameter("accountID");
artık bu değeri accountId
tüm sayfada kullanarak çağırabilirsiniz .
burada accountId
parametrenin adı da bunu kullanarak birden fazla parametre alabilirsiniz, ancak bu işe yaramaz. Sadece isteği GET
vurursanız yöntemle çalışacak, POST
sonra bir hata olacaktır.
Umarım bu yardımcı olur.