如何使用spring mvc在模型中添加Jsp中的数据

时间:2013-10-23 15:51:41

标签: spring jsp spring-mvc

单击提交按钮时,我有以下应用程序流程:

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()中的值吗?

1 个答案:

答案 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属性。有意义吗?