2

私が持っているのはドロップダウンリストです。ユーザーが特定のオプションを選択した場合。各オプションは、Javaサーバー側の特定の文字列を表します。

現在、Javaサーバー側は、選択されているオプションと対応する番号を確認できます。現時点では、JSPページではなく、Javaバックエンドで値を出力できます。

Struts1.0のif/elseタグはありますか?

フロントエンド処理にJava値を渡すのに最適なロジックタグがわかりません。

JSPページ

if(value = 666)
   this textbox is readonly
else
  this textbox row is active

これまでの私の研究:

を見るとlogic:equal、以下のようなtaglibsを使用してJSPページに値を渡しているようです。サーバー側のJavaクラスから値を渡したいので、これは私にはうまくいきません。

<logic:equal name="name" property="name" value="<%= theNumber %>" >
4

2 に答える 2

5
  <c:choose>
     <c:when test="${the number}">
         Both are equal.
     </c:when>
     <c:otherwise>
         Both are not equal.
     </c:otherwise>
     </c:choose>

これはjstlタグです

you need to use
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
于 2013-02-26T15:02:33.593 に答える
0

JSTLの答えが最適ですが、私の場合はJSTLのない古いJavaレガシーアプリケーションであり、紹介できませんでした。

これは、いくつかのレガシーStruts1.3コードで私が持っていた要件でした。「Y」、「N」、「」、またはnullのように、データベース呼び出しからのフォームBeanの値と一致するようにチェックボックスを設定します。

また、strutsロジックタグ内にとどまり、JSTLを使用しないようにする必要がありました。これは私の当初の好みでした。strutsのドキュメント によると、チェックボックスはactionFormのブール変数と同等である必要があるとのことですが、文字列値を使用しました。これは機能しました。

上記のドキュメントリンクから:

注:このフィールドに関連付けられている基になるプロパティ値はブール型である必要があり、指定する値はすべて、真の値( "true"、 "yes"、または "on")を示す文字列の1つに対応している必要があります。関連する文字列値のセットを利用する場合は、マルチボックスタグの使用を検討してください。 文字列の値をフォームのブール値に変換することを考えていましたが、この方法で文字列を取得しました。

最後に、JavaScriptを使用してチェック済みのステータスを設定しました。これらはすべて冗長であり、最善の解決策ではありませんが、要件に直面しても機能します。

コードは次のとおりです。

<logic:equal name="<%=formName%>" property="formInd" value="Y">
                <html:checkbox name="<%=formName%>" onchange="setDataChanged()" property="formInd"/>
                <script type="text/javascript" LANGUAGE="JavaScript">
                    document.<%=formName%>.formInd.checked = true;
                </script>              
            </logic:equal>
            <logic:equal name="<%=formName%>" property="formInd" value="N">
                <html:checkbox name="<%=formName%>" onchange="setDataChanged()" property="formInd"/>
                <script type="text/javascript" LANGUAGE="JavaScript">
                        document.<%=formName%>.formInd.checked = false;
                </script>              
            </logic:equal>
            <logic:empty name="<%=formName%>" property="formInd" >
                <html:checkbox name="<%=formName%>" onchange="setDataChanged()" property="formInd"/>
                <script type="text/javascript" LANGUAGE="JavaScript">
                        document.<%=formName%>.formInd.checked = false;
                </script>              
            </logic:empty>
于 2014-03-26T17:26:16.860 に答える