1

私の JSP ページでは、c:forEachタグを使用してオブジェクトのリストを繰り返し処理しています。このイテレーションの各オブジェクトには名前フィールドがあり、その名前フィールドを使用して、Spring モデルに追加した他のオブジェクトを参照しようとしています。ただし、これを行うと、2 番目のオブジェクトのプロパティが文字列で見つからないという例外が発生します。簡単な例で説明しましょう。

<c:forEach items="${companyList}" var="company" varStatus="num">
    <c:set var="monthStats" value="${company.name}_month" />
    <tr>
        <td>Properties This Month</td>
        <td>${monthStats.properties}</td>
    </tr>

    ....

</c:forEach>

すべてのオブジェクトは Spring Model オブジェクト内にあり、次のように設定されています model.addAttribute(company.getName() +"_month", currentMonthStats);

私も<c:setタグを捨てて試してみました

${(company.name + "_month").properties}

としても

${${company.name + "_month"}.properties}.

それらも機能していません。また、タイトルの言い方がよくわからなかったので、他の人が同じ問題を抱えている場合にこれを見つけられるように、より良い言葉遣いがあれば教えてください.

4

1 に答える 1

1

あなたは基本的に二重評価を求めていますが、そのようには機能しません。

ビューレイヤーに配信されるデータを少し変わったものに変更して、月の統計を会社名 (または ID) によってアクセスされるマップに入れるなど、病的でない方法でアクセスできるようにします。またはDTOなどでそれらを直接関連付けます。

于 2013-08-05T19:30:35.427 に答える