ใน JSP ฉันจะรับพารามิเตอร์จาก URL ได้อย่างไร
ตัวอย่างเช่นฉันมี URL ที่www.somesite.com/Transaction_List.jsp?accountID=5
ฉันต้องการรับ 5
มี request.getAttribute ("accountID") เหมือนมีเซสชันหรืออะไรที่คล้ายกันไหม
ใน JSP ฉันจะรับพารามิเตอร์จาก URL ได้อย่างไร
ตัวอย่างเช่นฉันมี URL ที่www.somesite.com/Transaction_List.jsp?accountID=5
ฉันต้องการรับ 5
มี request.getAttribute ("accountID") เหมือนมีเซสชันหรืออะไรที่คล้ายกันไหม
คำตอบ:
ในคำขอ GET พารามิเตอร์คำขอจะนำมาจากสตริงข้อความค้นหา (ข้อมูลต่อจากเครื่องหมายคำถามบน URL) ตัวอย่างเช่น URL http://hostname.com?p1=v1&p2=v2มีพารามิเตอร์คำขอที่สอง - - p1 และ p2 ในคำขอ POST พารามิเตอร์คำขอจะนำมาจากทั้งสตริงข้อความค้นหาและข้อมูลที่โพสต์ซึ่งเข้ารหัสในเนื้อความของคำขอ
ตัวอย่างนี้แสดงวิธีรวมค่าของพารามิเตอร์คำร้องขอในเอาต์พุตที่สร้างขึ้น:
Hello <b><%= request.getParameter("name") %></b>!
หากหน้านั้นถูกเข้าถึงด้วย URL:
http://hostname.com/mywebapp/mypage.jsp?name=John+Smith
ผลลัพธ์ที่ได้จะเป็น:
Hello <b>John Smith</b>!
หากไม่ได้ระบุชื่อบนสตริงเคียวรีเอาต์พุตจะเป็น:
Hello <b>null</b>!
ตัวอย่างนี้ใช้ค่าของพารามิเตอร์การสืบค้นใน scriptlet:
<%
if (request.getParameter("name") == null) {
out.println("Please enter your name.");
} else {
out.println("Hello <b>"+request. getParameter("name")+"</b>!");
}
%>
เกี่ยวกับออบเจ็กต์โดยนัยของUnified Expression Language , Java EE 5 Tutorialเขียน:
วัตถุโดยนัย
ภาษานิพจน์ JSP กำหนดชุดของวัตถุโดยนัย:
pageContext
: บริบทสำหรับหน้า JSP ให้การเข้าถึงวัตถุต่าง ๆ รวมถึง:
servletContext
: บริบทสำหรับเซิร์ฟเล็ตของเพจ JSP และองค์ประกอบเว็บใด ๆ ที่มีอยู่ในแอปพลิเคชันเดียวกัน ดูการเข้าถึงบริบทเว็บsession
: วัตถุเซสชันสำหรับลูกค้า ดูการบำรุงรักษาสถานะลูกค้าrequest
: คำขอเริ่มการทำงานของหน้า JSP ดูการรับข้อมูลจากการร้องขอresponse
: การตอบกลับที่ส่งคืนโดยหน้า JSP ดูการสร้างคำตอบ- นอกจากนี้ยังมีออบเจ็กต์หลายอย่างที่อนุญาตให้เข้าถึงวัตถุต่อไปนี้ได้อย่างง่ายดาย:
param
: แมปชื่อพารามิเตอร์คำขอเป็นค่าเดียวparamValues
: แผนที่ชื่อพารามิเตอร์คำขอไปยังอาร์เรย์ของค่าheader
: แมปชื่อส่วนหัวคำขอเป็นค่าเดียวheaderValues
: แผนที่ชื่อส่วนหัวคำขอไปยังอาร์เรย์ของค่าcookie
: แมปชื่อคุกกี้กับคุกกี้เดียวinitParam
: แผนที่ชื่อพารามิเตอร์เริ่มต้นบริบทเป็นค่าเดียว- ในที่สุดก็มีวัตถุที่อนุญาตให้เข้าถึงตัวแปรที่กำหนดขอบเขตต่าง ๆ ที่อธิบายไว้ในการใช้ขอบเขตวัตถุ
pageScope
: แผนที่ชื่อตัวแปรที่กำหนดขอบเขตหน้ากับค่าของแผนที่requestScope
: แผนที่ชื่อตัวแปรที่กำหนดขอบเขตคำขอเป็นค่าของพวกเขาsessionScope
: แผนที่ชื่อตัวแปรที่กำหนดขอบเขตเซสชันเป็นค่าapplicationScope
: แผนที่ชื่อตัวแปรที่กำหนดขอบเขตแอปพลิเคชันเป็นค่า
ส่วนที่น่าสนใจเป็นตัวหนา :)
ดังนั้นเพื่อตอบคำถามของคุณคุณควรสามารถเข้าถึงได้เช่นนี้ (โดยใช้ EL):
${param.accountID}
หรือใช้JSP Scriptlets (ไม่แนะนำ):
<%
String accountId = request.getParameter("accountID");
%>
ใช้ EL (ภาษานิพจน์ JSP):
${param.accountID}
<c:out value="${param.accountID}" />
เพื่อทำเช่นนั้น
ถ้าฉันอาจเพิ่มความคิดเห็นที่นี่ ...
<c:out value="${param.accountID}"></c:out>
ใช้งานไม่ได้สำหรับฉัน (มันพิมพ์ 0)
สิ่งนี้ใช้ได้ผล:
<c:out value="${param['accountID']}"></c:out>
request.getParameter("accountID")
คือสิ่งที่คุณกำลังมองหา นี่เป็นส่วนหนึ่งของ Java Servlet API ดูhttp://java.sun.com/j2ee/sdk_1.3/techdocs/api/javax/servlet/ServletRequest.htmlสำหรับข้อมูลเพิ่มเติม
String accountID = request.getParameter("accountID");
ตัวอย่างที่คุณต้องการลบระเบียนหัวเรื่องด้วย subject_id
@RequestMapping(value="subject_setup/delete/{subjectid}",method = RequestMethod.GET)
public ModelAndView delete(@PathVariable int subjectid) {
subjectsDao.delete(subjectid);
return new ModelAndView("redirect:/subject_setup");
}
และพารามิเตอร์จะใช้สำหรับการป้อนข้อมูลในแบบสอบถามของคุณ
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
สำหรับวันนี้URL
มีวิธีการเรียกrequest.getParameter
ใน java ถ้าคุณต้องการเป็นจำนวนมากที่นี่โยนลงไปในทำนองเดียวกันสำหรับโยนเข้าไปในค่าสตริงint
string
ดังนั้นสำหรับความต้องการของคุณเพียงคัดลอกผ่านด้านล่างบรรทัดในหน้า
int accountId =(int)request.getParameter("accountID");
ตอนนี้คุณสามารถเรียกค่านี้ใช้accountId
ทั้งหน้า
นี่accountId
คือชื่อของพารามิเตอร์ที่คุณสามารถรับได้มากกว่าหนึ่งพารามิเตอร์โดยใช้สิ่งนี้ แต่สิ่งนี้ไม่ได้ผล มันจะทำงานกับGET
วิธีการถ้าคุณกดPOST
คำขอแล้วพวกเขาจะเป็นข้อผิดพลาด
หวังว่านี่จะเป็นประโยชน์
หน้า 1: หน้ารายละเอียด 2: <% String id = request.getParameter ("userid");%> // ตอนนี้คุณสามารถใช้ id สำหรับการสืบค้น sql ของผลิตภัณฑ์รายละเอียด hsql