我有一个列表页面,如下所示,当我点击编辑按钮时,我想将patientId发送到getObject(),这样我就可以在datId存在的情况下从DB加载对象。我在很多方面尝试过,但它在getObject()中将null作为patiendId。 任何建议,将不胜感激。
以下是我的列表页面::
<c:forEach var="pat" items="${patients}" varStatus="status">
<tr>
<c:url var="editUrl" value="/patient/${pat.patientId}"/>
<td>${pat.firstName}</td>
<td>${pat.mobileNumber1}</td>
<td>${pat.emailId1}</td>
<td><a href='<c:out value="${editUrl}"/>'>Edit</a></td>
</tr>
</c:forEach>
控制器代码::
@Controller
@RequestMapping(value="/patient")
public class PatientController {
@ModelAttribute
public Patient getObject(@RequestParam(required=false) String patientId){
System.out.println("Model Attribute method :: "+patientId);
//Here I want to load the object using patientId.
return(patientId != null ? patientDAO.findPatientById(patientId) : new Patient());
}
@RequestMapping(value="/{patientId}", method=RequestMethod.GET)
public String editPatient(@PathVariable("patientId")String patientId){
System.out.println("Editing Id : "+patientId);
//Able to get the Id here.
return "editPage";
}
答案 0 :(得分:0)
您在一个地方使用@PathVariable
而在另一个地方使用@RequestParam
并且正在发送路径变量(/ patients / 123而不是请求参数/患者?patientId = 123):使用一个或另一个。
如下更新,应该有效:
@ModelAttribute
public Patient getObject(@PathVariable(required=false) String patientId){
System.out.println("Model Attribute method :: "+patientId);
//Here I want to load the object using patientId.
return(patientId != null ? patientDAO.findPatientById(patientId) : new Patient());
}}
答案 1 :(得分:0)
我得到了答案。以下是我的工作代码。希望它会帮助某人。谢谢所有人。
<tr>
<c:url var="deleteUrl" value="/patient/delete/${pat.patientId}"/>
<td>${pat.firstName}</td>
<td>${pat.mobileNumber1}</td>
<td>${pat.emailId1}</td>
<td><a href="newPatient?patientId=${pat.patientId}">Edit</a></td>
<td><a href='<c:out value="${deleteUrl}"/>'>Delete</a></td>
</tr>
</c:forEach>
控制器代码::
@ModelAttribute
public Patient getObject(@RequestParam(value="patientId", required=false) String patientId){
System.out.println("Model Attribute method :: "+patientId);
return (patientId != null ? patientDAO.findPatientById(patientId) : new Patient());
}
@RequestMapping(value="/newPatient", method=RequestMethod.GET)
public String demo(ModelMap model){
System.out.println("Demo of Patient");
return "newPatient";
}