Di JSP bagaimana saya mendapatkan parameter dari URL?
Misalnya saya punya URL yang www.somesite.com/Transaction_List.jsp?accountID=5
ingin saya dapatkan 5.
Apakah ada request.getAttribute ("accountID") seperti ada untuk sesi atau yang serupa?
Di JSP bagaimana saya mendapatkan parameter dari URL?
Misalnya saya punya URL yang www.somesite.com/Transaction_List.jsp?accountID=5
ingin saya dapatkan 5.
Apakah ada request.getAttribute ("accountID") seperti ada untuk sesi atau yang serupa?
Jawaban:
Dalam permintaan GET, parameter permintaan diambil dari string kueri (data mengikuti tanda tanya pada URL). Misalnya, URL http://hostname.com?p1=v1&p2=v2 berisi dua parameter permintaan - - p1 dan p2. Dalam permintaan POST, parameter permintaan diambil dari string kueri dan data yang diposkan yang disandikan di badan permintaan.
Contoh ini menunjukkan bagaimana memasukkan nilai parameter permintaan dalam output yang dihasilkan:
Hello <b><%= request.getParameter("name") %></b>!
Jika halaman diakses dengan URL:
http://hostname.com/mywebapp/mypage.jsp?name=John+Smith
output yang dihasilkan adalah:
Hello <b>John Smith</b>!
Jika nama tidak ditentukan pada string kueri, hasilnya adalah:
Hello <b>null</b>!
Contoh ini menggunakan nilai parameter kueri dalam skrip:
<%
if (request.getParameter("name") == null) {
out.println("Please enter your name.");
} else {
out.println("Hello <b>"+request. getParameter("name")+"</b>!");
}
%>
Tentang Objek Tersirat dari Unified Expression Language , Java EE 5 Tutorial menulis:
Objek Tersirat
Bahasa ekspresi JSP mendefinisikan sekumpulan objek implisit:
pageContext
: Konteks untuk halaman JSP. Menyediakan akses ke berbagai objek termasuk:
servletContext
: Konteks untuk servlet halaman JSP dan komponen web apa pun yang terkandung dalam aplikasi yang sama. Lihat Mengakses Konteks Web.session
: Objek sesi untuk klien. Lihat Mempertahankan Status Klien.request
: Permintaan yang memicu eksekusi halaman JSP. Lihat Mendapatkan Informasi dari Permintaan .response
: Respons dikembalikan oleh halaman JSP. Lihat Membangun Tanggapan.- Selain itu, beberapa objek implisit tersedia yang memungkinkan akses mudah ke objek berikut:
param
: Memetakan nama parameter permintaan ke satu nilaiparamValues
: Memetakan nama parameter permintaan ke array nilaiheader
: Memetakan nama header permintaan ke nilai tunggalheaderValues
: Memetakan nama header permintaan ke array nilaicookie
: Memetakan nama cookie ke satu cookieinitParam
: Memetakan nama parameter inisialisasi konteks ke nilai tunggal- Akhirnya, ada objek yang memungkinkan akses ke berbagai variabel cakupan yang dijelaskan dalam Menggunakan Objek Lingkup.
pageScope
: Memetakan nama variabel dengan cakupan halaman ke nilainyarequestScope
: Memetakan nama variabel dengan cakupan permintaan ke nilainyasessionScope
: Memetakan nama variabel dengan cakupan sesi untuk nilainyaapplicationScope
: Memetakan nama variabel cakupan aplikasi ke nilainya
Bagian yang menarik dicetak tebal :)
Jadi, untuk menjawab pertanyaan Anda, Anda harus dapat mengaksesnya seperti ini (menggunakan EL):
${param.accountID}
Atau, menggunakan Scriptlet JSP (tidak disarankan):
<%
String accountId = request.getParameter("accountID");
%>
Gunakan EL (Bahasa Ekspresi JSP):
${param.accountID}
<c:out value="${param.accountID}" />
untuk melakukan itu.
Jika saya dapat menambahkan komentar di sini ...
<c:out value="${param.accountID}"></c:out>
tidak bekerja untuk saya (mencetak 0).
Sebaliknya, ini berfungsi:
<c:out value="${param['accountID']}"></c:out>
request.getParameter("accountID")
adalah apa yang kamu cari. Ini adalah bagian dari Java Servlet API. Lihat http://java.sun.com/j2ee/sdk_1.3/techdocs/api/javax/servlet/ServletRequest.html untuk informasi lebih lanjut.
Misalnya Anda ingin menghapus catatan subjek dengan subject_id-nya
@RequestMapping(value="subject_setup/delete/{subjectid}",method = RequestMethod.GET)
public ModelAndView delete(@PathVariable int subjectid) {
subjectsDao.delete(subjectid);
return new ModelAndView("redirect:/subject_setup");
}
dan parameter akan digunakan untuk input pada permintaan Anda
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
Untuk ini URL
ada pemanggilan metode request.getParameter
di java, jika Anda ingin nomor di sini dilemparkan ke dalam int
, sama untuk nilai string dilemparkan ke dalam string
. jadi untuk kebutuhan Anda, cukup salin melewati baris di bawah halaman,
int accountId =(int)request.getParameter("accountID");
Anda sekarang dapat memanggil nilai ini menggunakan accountId
seluruh halaman.
di sini accountId
adalah nama parameter Anda juga bisa mendapatkan lebih dari satu parameter menggunakan ini, tetapi ini tidak berfungsi. Itu hanya akan bekerja dengan GET
metode jika Anda menekan POST
permintaan maka mereka akan menjadi kesalahan.
Semoga ini bisa membantu.