【问题标题】:Spring MVC List Values Returned UnchangedSpring MVC 列表值返回不变
【发布时间】:2012-09-15 16:07:33
【问题描述】:

我正在努力将我的 JSP 中更改的列表值返回给 MVC 控制器。这些值显示得很好,但是在提交表单时更改不会显示在 ModelAttribute 中(任何更改的非列表值都会在提交时显示)。以下是相关代码的缩略版:

JSP:

<c:forEach items="${poForm.poDetail}" varStatus="i">
...
<!-- Product Description -->
<td class="leftAlign"  >
  <form:input path="poDetail[${i.index}].description"  />
</td>

支持表格:

public class POForm {
  private List<PurchaseOrderDetail> poDetail;
...
}

采购订单详情:

public class PurchaseOrderDetail implements Comparable<PurchaseOrderDetail>{
    private String partNumber; // alpha-numeric part number (vendor's)
private String description; // Product name/description
... remaining properties are non-complex
}

控制器:

@RequestMapping(value="/savePO",method=RequestMethod.POST)
public ModelAndView savePO(@ModelAttribute("poForm") POForm poForm, final       
     HttpServletRequest request) {
.... "examine the poForm here and items of poDetail are unchanged"
}

有什么建议可以试试??

【问题讨论】:

  • 你有 poDetail 和 description 属性的 setter 和 getter 吗?
  • 是的。我没有将它们包含在代码中以使其更简单。
  • 你在这个控制器中有没有其他 @ModelAttribute 注释的方法 - 它必须从某个地方检索旧值
  • 首先尝试使用FireBug之类的工具检查更新的详细信息是否传输到服务器。这将有助于决定在哪里找到问题(jsp 或控制器)
  • 谢谢,我不知道我可以在 FireBug 中做到这一点。确实,这暴露了问题。我在提交的页面上有另一个表单,而不是我想要的表单(长话短说,JQuery 新手)。一旦我纠正了这一点,列表中的更改值就会按预期出现。我会给你答案,但你下面的答案不是我想要的。来一句“非常感谢”怎么样?

标签: spring model-view-controller list


【解决方案1】:

我记得前段时间我遇到过类似的问题。当我没记错时,将支持从List 更改为array 后问题就消失了。

【讨论】:

    【解决方案2】:

    感谢 Ralph,我发现 Spring MVC 列表值没有被返回,因为我无意中提交了错误的表单。一旦我纠正了这一点,列表值就会按预期返回。

    【讨论】:

      猜你喜欢
      • 2023-03-19
      • 1970-01-01
      • 1970-01-01
      • 2021-05-16
      • 1970-01-01
      • 2015-06-02
      • 2012-10-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多