0

スクリプトレットの代わりに struts タグを使用するように、既存の Web アプリをリファクタリングしています。複数の時間で発生することの1つは、次のような条件付きチェックです

<%if ("true".equals(requset.getparameter("someParam"))) {%>

some html, javascript

<%else{%>
some other html,javascript
<%}%>

これを struts ロジック タグに置き換えて、スクリプトレットを置き換えたいと考えています。formbean 内に someParam を格納せずにそれを行うことは可能ですか? デフォルトでは、ロジック タグの構文は formbean パラメータでのみ機能するようです。

4

1 に答える 1

1

Struts 固有のソリューションではありませんが、JSTL カスタム タグの使用について考えたことはありますか? タグは最新の Web コンテナー仕様に含まれており、デフォルトで JSTL 仕様を含まない古い Web コンテナーを簡単に追加できます。

JSTLに基づくソリューションは次のとおりです。

<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
...
<c:choose>
  <c:when test="${param.someParam eq 'true'}">
    some html, javascript
  </c:when>

  <c:otherwise>
    some other html, javascript
  </c:otherwise>
</c:choose>

struts カスタム タグを使用して UI コンポーネントを生成する場合を除き、可能な限り JSTL 標準タグを使用することをお勧めします。ただし、Struts を使用することに設定されている場合は、Struts 1 の例を次に示します。

<bean:parameter id="paramValue" name="someParam" />
<logic:equal name="paramValue" value="true">
  some html, javascript
</logic:equal>

<logic:notEqual name="paramValue" value="true">
  some other html, javascript
</logic:notEqual>

このソリューションは、リクエスト パラメータを受け取り、struts ロジック カスタム タグによってアクセスできるページ スコープ属性 (paramValue) に入れます。

于 2011-02-16T02:50:53.163 に答える