[英]How to transmit data from one View to another View in Spring MVC?
[英]How to pass several parameters from one view to another (Spring MVC)
將這些參數從一個jsp頁面傳遞到另一個jsp頁面的最佳方法是什么?
第一個處理程序方法:
@RequestMapping(value="/search", method = RequestMethod.POST)
public String postSearchStudent(
@RequestParam(value = "program.programId") String programId,
@RequestParam(value = "rollNumber") String rollNumber,
@RequestParam(value = "rollYear") String rollYear,
@RequestParam(value = "indexNumber") String indexNumber,
Model model) {
// do something ???
// Call StudentService to do the searching
Student student = studentService.search(indexNumber);
// if student isn't in the db load addStudent.jsp, else load student.jsp
if (student == null)
return "addStudent";
else
return "student";
}
searchStudent.jsp:
<c:url var="searchUrl" value="/essays/main/student/search" />
<form:form modelAttribute="student" method="POST" action="${searchUrl}">
第二個處理程序方法:
@RequestMapping(value="/add", method = RequestMethod.GET)
public String getAddStudent(
@RequestParam(value = "program.programId") String programId,
@RequestParam(value = "rollNumber") String rollNumber,
@RequestParam(value = "rollYear") String rollYear,
@RequestParam(value = "indexNumber") String indexNumber,
Model model) {
Student student = new Student();
student.setRollNumber(rollNumber);
student.setRollYear(rollYear);
student.setIndexNumber(indexNumber);
Program program = programService.get(programId);
student.setProgram(program);
model.addAttribute("student", student);
return "addStudent";
}
addStudent.jsp:
<c:url var="saveUrl" value="/essays/main/student/add" />
<form:form commandName="student" method="POST" action="${saveUrl}">
誰能告訴我如何將這4個參數(programId,rollNumber,rollYear,indexNumber)從searchStudent.jsp傳遞到addStudent.jsp?
為什么不將它們保存在Cookie中? 使用類似jQuery cookie插件的東西? 或者將這些參數作為屬性添加到模型對象,然后將模型傳遞到視圖,或者如果使用的是Spring 3.2,請查看類似@ ControllerAdvice的內容。 很多選擇。
簽出請求分派器。 您需要將請求轉發到addStudent.jsp。
http://docs.oracle.com/javaee/6/api/javax/servlet/RequestDispatcher.html
最好的方法是為此屬性創建一個表單
學生條件表
public class StudentCriteriaForm {
private String programId;
private String rollNumber;
private String rollYear;
private String indexNumber;
//setter && Getter Methods
}
現在按如下所示將此屬性綁定到您的jsp
searchStudent.jsp
<c:url var="searchUrl" value="/essays/main/student/search" />
<form:form modelAttribute="student" method="POST" action="${searchUrl}" commandName="studentCriteriaForm">
<form:input path="programId" />
<form:input path="rollNumber" />
<form:input path="rollYear" />
<form:input path="indexNumber" />
<input type="submit" value="Search" id="btnSearch" >
</form:form>
調節器
@RequestMapping(value="/search", method = RequestMethod.POST)
public String postSearchStudent(@ModelAttribute("studentCriteriaForm") StudentCriteriaForm studentCriteriaForm,
ModelMap model,HttpServletRequest request) {
// do something ???
// Call StudentService to do the searching
Student student = studentService.search(studentCriteriaForm.getIndexNumber());
// if student isn't in the db load addStudent.jsp, else load student.jsp
if (student == null) {
//here you can pass your parameters to your addStudent.jsp
model.addAttribute("studentCriteriaForm", studentCriteriaForm);
return "addStudent";
} else {
return "student";
}
}
現在您可以在addStudent.jsp頁面上以以下方式獲取此參數的值:
<c:url var="saveUrl" value="/essays/main/student/add" />
<form:form commandName="student" method="POST" action="${saveUrl}">
<c:out value="${studentCriteriaForm.programId}"></c:out>
<c:out value="${studentCriteriaForm.rollNumber}"></c:out>
<c:out value="${studentCriteriaForm.rollYear}"></c:out>
<c:out value="${studentCriteriaForm.indexNumber}"></c:out>
或者您也可以直接從postSearchStudent()
方法導航到getAddStudent()
方法。 希望這能解決您的問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.