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 URLbir 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 accountIdtüm sayfada kullanarak çağırabilirsiniz .
burada accountIdparametrenin adı da bunu kullanarak birden fazla parametre alabilirsiniz, ancak bu işe yaramaz. Sadece isteği GETvurursanız yöntemle çalışacak, POSTsonra bir hata olacaktır.
Umarım bu yardımcı olur.