1

以下のコードが機能しないのはなぜですか? アイデアは、最後にページを更新してからドロップダウン変数に変更があるかどうかをページがチェックすることです。

 <logic:equal name="Result" value = "-1">
   <bean:define id="JOININGDATE" name="smlMoverDetailForm" property="empFDJoiningDate"
         type="java.lang.String" toScope = "session" />
 </logic:equal> 


 <logic:equal name="Result" value = "-1">
   <bean:define id="DropDownValue" name="smlMoverDetailForm" property="moverChangeType" 
type="java.lang.String" toScope = "session" />              
</logic:equal>

<-- when you fisrt access this page from the above are run -->

 <bean:define id="NewDropDownValue" name="smlMoverDetailForm"
  property="moverChangeType" type="java.lang.String" toScope = "sess

<-- this happens everytime the page is refreshed-->

   <logic:equal name= DropDownValue   value = NewDropDownValue>
    <bean:define id="JOININGDATE" name="smlMoverDetailForm"
  property="empFDJoiningDate" type="java.lang.String" toScope = "session" />
   </logic:equal> 

    <logic:notEqual name="DropDownValue"   value = "NewDropDownValue">
    <bean:define id="DropDownValue" name="smlMoverDetailForm" 
    property="moverChangeType" type="java.lang.String" toScope = "session"
     />              
    </logic:notEqual>    
4

5 に答える 5

1

bean:define - 少なくともここで述べた質問では - に欠陥があることに気付きましたか?

toScope="sess

おそらくあなたが望むものではありません-タグを終了することすらありません。しかし、これはStackOverflowでフォーマットされている可能性があります...また、欠落している引用符は他の回答で言及されています。

エラーは、value プロパティの使用である可能性があります。 (s) のこのタグが、比較されます。

したがって、 NewDropDownValue という名前の Bean を定義した場合、評価したい場合があります

<logic:equal name="DropDownValue" value="<%=NewDropDownValue/>">

編集:さらに、Bean を条件付きでのみ定義するとどうなるか思い出せません。Bean は、評価される場合と評価されない場合がある logic:equal ブロッ​​ク内で定義されています。それは合法であり、結果が定義されている可能性がありますが、思い出せません...

于 2008-10-19T20:29:50.273 に答える
0
<logic:equal name= DropDownValue   value = NewDropDownValue>

これがあなたの問題であるかどうかはわかりませんが(どのように機能しないか説明してください)、上記は有効なxmlではありません。属性値を引用符で囲む必要があります。

于 2008-10-17T11:28:05.127 に答える
0

実際、私はあなたが望むものを本当に得ていませんが、質問のコードの疑似コード(危険な先のとがった括弧を削除)を次に示します

if result == -1
   define JOININGDATE
end
if result == -1
   define DropDownValue
end

これはエラーである可能性があります (「等しい」を 1 回、「等しくない」を 1 回確認する必要がある場合があります)、または短く明確に記述されている可能性があります。

if result == -1
   define JOININGDATE
   define DropDownValue
end
// otherwise don't define both values

これらのロジックタグ内に出力を配置し、出力ともう少しコンテキスト (実際のパラメーター値 - 「結果」とは何か) の両方を投稿すると、質問により良い回答が得られる (または自分で回答される) 可能性があります。しかし、その後 - あなたは未登録のアカウントから投稿し、しばらく見られませんでした...

于 2008-11-06T19:32:16.627 に答える
0

問題は、定義された Bean に保持されている値を評価するためのロジック タグを取得できないことです。

于 2008-10-17T12:18:50.237 に答える
0

これを試して:

<logic:equal name="Result" value = "-1">
   <bean:define id="JOININGDATE" name="smlMoverDetailForm" property="empFDJoiningDate"
         type="java.lang.String" toScope = "session" />
 </logic:equal> 


<logic:equal name="Result" value = "-1">
   <bean:define id="DropDownValue" name="smlMoverDetailForm" property="moverChangeType" 
        type="java.lang.String" toScope = "session" />              
</logic:equal>

<!-- when you fisrt access this page from the above are run -->

<bean:define id="NewDropDownValue" name="smlMoverDetailForm"
    property="moverChangeType" type="java.lang.String" toScope = "session"/>

<!-- this happens everytime the page is refreshed-->

<logic:equal name="DropDownValue" value="<%=request.getSession().getAttribute("NewDropDownValue").toString()%>">
    <bean:define id="JOININGDATE" name="smlMoverDetailForm"
        property="empFDJoiningDate" type="java.lang.String" toScope ="session" />
</logic:equal>

<logic:notEqual name="DropDownValue" value="NewDropDownValue">
    <bean:define id="DropDownValue" name="smlMoverDetailForm" 
        property="moverChangeType" type="java.lang.String" toScope = "session"/>              
</logic:notEqual>

修正されたエラー:

  • コメントの形式が適切ではありませんでした
  • 3 番目は正しく終了しませんでした
  • NewDropDownValue の取得方法を変更

これらの変更により、正しく実行されると思います。

于 2008-11-07T08:28:25.983 に答える