2

少し検索しましたが、この特定の質問が行われたようには見えません(間違っている場合は、お詫びします)。

私が取り組んでいるアプリケーションは、一連のデータに関するレポートを処理します。レポートは、クライアントとレポートカテゴリによって分けられます。

私が抱えている問題は、クライアントとカテゴリの数がジョブごとに異なることです。そのため、各ジョブの要件に基づいて、次のフォーム要素を動的に生成する必要があります。

<!-- CLIENT NAME -->
Inclusion Client Name:
    <form:errors path="clientName"  cssClass="error"/><br />
    <form:input path="clientName" />       
<br /><br />

<!-- REPORTING CCATEGORIES -->
Reporting Categories:
    <form:errors path="reportingCategories"  cssClass="error"/><br />
    <form:input path="reportingCategories" />       
<br /><br />
<!-- comma separated list of categories -->

いくつかの理論をテストする過程で、複数のフォーム要素を同じパスにポイントできることを学びました。Springは値をコンマ区切りのリストに連結します。私の唯一の懸念は、これらのフォーム要素が読み取られる順序です。

<!-- CLIENT NAME A -->
Inclusion Client Name:
    <form:errors path="clientName"  cssClass="error"/><br />
    <form:input path="clientName" />       
<br /><br />

<!-- REPORTING CATEGORIES A -->
Reporting Categories:
    <form:errors path="reportingCategories"  cssClass="error"/><br />
    <form:input path="reportingCategories" />       
<br /><br />
<!-- comma separated list of categories -->

<!-- CLIENT NAME B -->
Inclusion Client Name:
    <form:errors path="clientName"  cssClass="error"/><br />
    <form:input path="clientName" />       
<br /><br />

<!-- REPORTING CATEGORIES B -->
Reporting Categories:
    <form:errors path="reportingCategories"  cssClass="error"/><br />
    <form:input path="reportingCategories" />       
<br /><br />
<!-- comma separated list of categories -->

上記の2番目のコードスニペットでは、私のテストケースはクライアント名Bの前にクライアント名Aを読み取ります(基本的にページを上から下に向かって作業します)。これは常に当てはまりますか?

4

1 に答える 1

1

はい、順序は常にフォームフィールドがフォームで定義されている順序になります。

同じパスで複数のフィールドを定義する場合は、次のようにリクエストメソッドで配列としてバインドすることもできます。

@Controller
public class YourController {
    @RequestMapping(....)
    public String foo(@RequestParam String clientName[], @RequestParam String reportingCategories[], BindingResult result) {
        ...
    }
}
于 2012-11-21T17:43:13.823 に答える