0

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

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

4

1 回答 1

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的实例中获取属性。有道理?RecoveryFormrecoveryForm

于 2013-10-23T16:00:46.000 回答