0

form:form春をリスト要素にバインドすることは可能ですか? 私はこの方法を試しました。

<form:form commandName="products[0]">
   <form:input path="name"/>
</form:form>

また

<form:form commandName="products0">
   <form:input path="name"/>
</form:form>

productsリストがスプリング コントローラーに入力される場所。

@RequestMapping(method = RequestMethod.GET)
public String getAll(Map<String, Object> map) {
    map.put("products", productService.getAll());
    return "products";
}

受け取りました: java.lang.IllegalStateException: Neither BindingResult nor plain target object for bean name 'products[0]' available as request attribute。私が理解しているように、これは春がフォームをバインドする場所を見つけていないことを意味します。

4

1 に答える 1

0

いいえ、これは不可能です。属性に渡す値commandNameはキーであり、通常の EL または SpEL 式のように解決されません。直接使用されます。言い換えれば、

<form:form commandName="products[0]">
   <form:input path="name"/>
</form:form>

Spring は、見つからないモデル属性products[0]を探します。

別の方法は、jsp で使用するキーを使用して、リストの最初の要素をモデルに直接配置することです。

または、JSTL を使用して、リストの最初の要素を取得し、<form>自分で HTML 要素を作成することもできます。

于 2013-11-23T16:37:23.887 に答える