2011-02-14 36 views
3

預先感謝您的時間。比較JSP中的兩個valuestack字符串值 - struts2

我需要預先選擇一個單選按鈕,如果它有一個保存的值。我基本上需要比較valuestack中的2個字符串來確定這一點。

(我目前不能使用<s:radio,因爲我需要根據表單中的其他輸入元素附加一些業務規則)。

我試圖做<s:set下面s:iterate像下面保存的ID的值,然後比較他們像下面但顯然我沒有得到它的權利。

<s:set var="savedId" value="%{flag.problemId}"/> 
       <s:iterator value="problemIdList"> 
        <s:set var="currentId" value='<s:property value="id"/>' />     
         <s:if test="%{#currentId.equals(#savedId)}" > 
           <input checked="checked" type="radio" name="problemId" id="problemId" value='<s:property value="id"/>'/> <s:property value="description"/> <br/> 
         </s:if> 
       <s:else> 
        <input type="radio" name="problemId" id="problemId" value='<s:property value="id"/>'/> <s:property value="description"/> <br/> 
       </s:else>      
      </s:iterator> 

基本上我需要比較兩個字符串,我的代碼如下。我知道我不能與equals()比較,就像我有下面 - 任何想法?

非常感謝!

<s:set var="savedId" value="%{flag.problemId}"/> <s:iterator value="problemIdList">         
<s:if test=' <s:property value="id"/>.equals(<s:property value="savedId"/>) '> 
    <input checked="checked" type="radio" name="problemId" id="problemId" value='<s:property value="id"/>'/>   <s:property value="description"/> <br/> 
</s:if> 
<s:else> 
    <input type="radio" type="radio" name="problemId" id="problemId" value='<s:property value="id"/>'/>      <s:property value="description"/> <br/> 
</s:else>      

問候, VeeCan

+0

添加了ognl標記。 – 2011-02-14 22:17:17

回答

8

你試過:

<s:if test='id.equals(savedId)'> 

如果 「ID」 是一個字符串OGNL將允許你使用字符串的方法。

+0

同意。這應該適合你。測試屬性的值被評估爲OGNL表達式。 – 2011-02-14 22:16:29

1

訪問值形式<s:iterator><s:if>(OGNL與<s:if><s:iterator>

例如:假設loadUserList是(含有UserNameAddress)在JSP來進行迭代的迭代器,

 UserName:<s:property escape="false" value="userName" /> 
    Address:<s:property escape="false" value="address" /> 
    <s:if test='userName.equals("Admin")'>This is admin User</s:if> 
    <s:else>This is not an admin user!</s:else> 

OGNL with s:if and s:iterator