单击提交按钮时,我有以下应用程序流程:
1)从ActivityController.java
调用viewActivity方法ActivityController.java
@ActionMapping(params = "ActivityController=showActivity")
public void viewActivity(@RequestParam Integer index, ActionResponse response, Model model, @ModelAttribute Header header,
....
model.addAttribute("recoveryForm", new RecoveryForm(detailsResult.getDetails()));
response.setRenderParameter("ServiceController", "showService");
}
2)然后从serviceConroller调用showRecovery方法,如下所示:
ServiceController.JAVA
@RenderMapping(params = "ServiceController=showService")
public String showRecovery(@ModelAttribute recoveryForm form, @ModelAttribute header header) {
.....
return service;
}
然后显示我的service.jsp
基本上我必须显示一个变量的值,该变量是在DetailsResult.getDetails()对象中找到的detailName,我已将其添加到我的模型中 可以看出在ActivityController.java中找到的viewActivity方法显示更早。
我知道当我们添加model.addAttribute时,它应该能够使用以下标记显示在此jsp上:
<form:input path="..." />
但是在这种情况下,它被添加为构造函数参数,如下所示:
model.addAttribute("recoveryForm", new RecoveryForm(detailsResult.getDetails()));
我的RecoveryForm上有以下变量:
public class RecoveryForm implements Serializable {
private CDetails Cdlaim;
private Action addAction;
private String addRemark;
private String remarks;
public RecoveryForm(CDetails Cdlaim) {
...
}
...
}
但是我的RecoveryForm中没有detailsResult。
我知道如何在service.jsp中获取DetailsResult.getDetails()中的值吗?
答案 0 :(得分:0)
我相信你是以错误的方式看待这个。 DetailsResult.getDetails()
的值显然以某种方式存储在RecoveryForm
中作为属性。所以,我假设您的RecoveryForm
看起来像:
public class RecoveryForm {
private String details;
public RecoveryForm(String details) {
this.details = details;
}
public String getDetails() {
return details;
}
}
当您绑定到jsp中的表单时,您需要将<form:input ...>
标记嵌套在<form:form ...>
标记中:
<form:form commandName="recoveryForm" ...>
<form:input path="details" ... />
</form:form>
commandName
是告诉表单模型对象的关键,您将从中提取表单值。在这种情况下,您将从名为details
的{{1}}实例获取RecoveryForm
属性。有意义吗?