0

エントリのリストからエントリを投稿する必要がある freemarker ページがあります。

spring.formInput および freemarker リストに関する問題を克服するために (ここで問題を参照)、次の方法で html フォームを作成します。

<#list entries as entry>
    <@form.form method="POST" commandName="receiver">
        <@spring.formInput "entries.entry[${entry_index}].name"/>
        <@spring.formInput "entries.entry[${entry_index}].value"/>
    </@form.form>
</#list>

私のコントローラーは次のようになります。

@RequestMapping(method=POST, params="save") 
public String save(@ModelAttribute(value="entries") @Valid Entries entries, BindingResult result, Model model){
    /*notice, we always get the last item in the list, since the entries  "carries" the index of the form through, and  creates
     * null-object in the first n places
    */ 
    int index = entries.size()-1;
    Entry entry = entries.get(index);
    if (!result.hasErrors()) {
        formService.save(entry);
    }

    return "";
}

残念ながら、リストの最初のエントリとは別にエントリを投稿するたびに、@Valid 注釈によってエラーが発生します。

これは、春が現在のインデックスまで null 値をリストに自動的に入力するために発生します。

  • エントリーではなくエントリーを投稿したいのですが、これはできないと思います。
  • または、リストの最初の n-1 エントリで検証が行われないようにするにはどうすればよいですか?
  • または、リスト (インデックス) 内のどのオブジェクトがエラーを引き起こしたのかを何らかの方法でテストして、最初の n-1 エントリからのエラーを回避できるようにすることはできますか?
4

1 に答える 1

0

私は数ヶ月前に同様の問題に直面しました。しかし、LazyListの使用に問題がありました。この質問であなたの答えが見つかるかもしれません。これがお役に立てば幸いです。

于 2012-10-31T12:50:58.113 に答える