【发布时间】:2017-06-09 07:34:40
【问题描述】:
我有一个在 JSP 表单中成功使用的 POJO。我可以显示表格,并可以将结果发回。这是modelAttribute bean
public class FooAdminWebDTO implements Serializable {
private static final long serialVersionUID = -5296961362891142744L;
private List<FooDTO> FooDTOList;
private String success = "success"; //..etc
这是我的 JSP 页面中的一个例外:
<form:form method="post" class="form-horizontal" id="viewForm"
action="${pageContext.request.contextPath}/FooAdmin/saveFoo" modelAttribute="FooAdminWebDTO">
<div class="form-group">
<form:label class="col-sm-2" path="FooDTO" for="FooDTO" required="true">XYZ:</form:label>
<form:input class="col-sm-5" path="FooDTO" id="FooDTO" type="number" value="${FooAdminWebDTO.FooDTO.FooXYZ}" required="true"/>
</div>
<div class="form-group">
<form:label class="col-sm-2" path="success" for="success" required="true">Success:</form:label>
<form:input class="col-sm-5" path="success" id="success" type="text" value="SUCCESS" required="true"/>
</div>
问题出在我的 POST 区域。我成功地击中了正确的控制器方法:
@RequestMapping(value = "/FooAdmin/saveFoo", method = RequestMethod.POST)
public ModelAndView saveFooByID(@ModelAttribute("FooAdminWebDTO") FooAdminWebDTO s, BindingResult bindingResult) {
return new ModelAndView();
}
但是,正如预期的那样,我只看到成功字段的内容由 Spring 填充。成功字段是一个简单的字符串。 (所有其他复杂字段均为空)。
这里是对象:FooDTO:
@JavascriptMappable
public class FooDTO implements Serializable {
private static final long serialVersionUID = -5974170234812308892L;
private String FooDescription;
private int additionQuantity;
等等。
请有人指导我如何做到这一点?我使用 XML 进行配置,所以任何涉及配置的答案,请记住这一点。我有非常深的嵌套对象,需要一种方法将我的对象绑定到传入的 POST 对象。
谢谢。
【问题讨论】:
-
只是为了确保,您是否在控制器中设置了对象属性“productAdminWebDTO”?我认为如果不是,那么您对“productDTO”字段的期望值如何。您的 JSP 页面是否显示“productAdminWebDTO.productDTO.productPrice”的值?
标签: java spring spring-mvc