0

Spring MVC アプリケーションを使用しており、次のコードを含む JSP があります。

<c:choose>
            <c:when test="${type eq 'school'}">
            <h1 class="title">${schoolVO.name}</h1>
            </c:when>

            <c:when test="${type eq 'college'}">
            <h1 class="title">${collegeVO.name}</h1>

            </c:when>

            <c:when test="${type eq 'tution'}">
             <h1 class="title">${tutionVO.name}</h1>
            </c:when>
            ...
            ..
            ..
            Many other types...

</c:choose>

type この jsp は、モデル属性の設定に依存するメソッドがコントローラーにある場合に呼び出されます。

タイプが の場合school

modelMap.addAttribute("schoolVO", school);

もし大学なら

modelMap.addAttribute("collegeVO", college);

同様に他の..

<c:when>でこの条件を削除したいと思いjspます。

タイプに応じて、モデル属性を 1 つ追加し、次のいずれ schoolVOかを配置しcollgeVOます。

modelMap.addAttribute("typeVO", "schoolVO");

そのため、 if<c:when>条件を使用する必要はありませんでしたjsp。そして、私は次のようなものを使いたいです

${{typeVO}.name}

しかし、これは私にエラーを与えます

 contains invalid expression(s): javax.el.ELException: Error Parsing:

どうすればこれを達成できますか? 前もって感謝します。

PS 質問の適切なタイトルを取得できませんでした。私が入れることができる適切なものがあればそれを変更してください。

4

2 に答える 2

0

それらのすべてにというフィールドがある場合は、次のnameことができます${typeVO.name}

于 2013-02-15T07:32:28.580 に答える
0

リクエストにさまざまな属性が設定されていると、複雑になる可能性があります。私の知る限り、印刷したい名前を処理する単一の属性を持つ方が良いでしょう:

modelMap.addAttribute("institutionName", school.getName());
//or
modelMap.addAttribute("institutionName", college.getName());

これには印刷するタイトルが含まれており、JSP では検証を使用せず、次のように記述します。

<h1 class="title">${institutionName}</h1>
于 2013-02-15T07:33:22.107 に答える