Spring Forms - 表单的值:select items attribute

时间:2012-01-11 17:59:32

标签: java spring spring-mvc

我为我的表单设置了一个支持bean。这部分工作正常。

我有一个字段的可能值已经设置为我的支持bean上的列表。有没有办法在commandName的上下文中以与使用路径相同的方式访问此列表?

举个例子:

(我不想要这个)

<form:form method="POST" commandName="address">
   <form:select path="country">
      <form:options items="${address.countryList}" itemValue="countryId" itemLabel="countryName" />
   </form:select>
</form:form>

(我希望以这种方式访问​​它)

<form:form method="POST" commandName="address">
   <form:select path="country">
      <form:options items="countryList" itemValue="countryId" itemLabel="countryName" />
   </form:select>
</form:form>

我在网上看到很多使用EL样式$ {}的示例属性,但我想知道是否有人可以告诉我这是如何在表单的上下文中完成的。由于缺少更好的术语,我想访问与commandName位于相同“范围”的列表。

可以这样做吗?

如果你想知道为什么我想这样做:我有很多形式在嵌套循环内几层深,所以我最终得到大约9个表格总共有类似(但不精确)的列表所以我不能每次都使用相同的列表,这就是我在支持bean上有列表的原因。该列表包含特定于每个bean的允许值。

1 个答案:

答案 0 :(得分:0)

不,因为pathitems根本不同。

TLD表示表单标记的path属性指示所选选项应绑定到哪个字段,items属性是生成所有选项的便捷方式。

您的控制器仍然需要大致类似于此的代码:

 public String formSetup(ModelMap model) {
     //...
     model.put("countryList", backingBean.getCountryList());
     //...
     return "mySuperAwesomeView.jsp";
 }