比较JSP中的两个valuestack字符串值 - struts2

时间:2011-02-14 20:29:21

标签: struts2 ognl

提前感谢您的时间。

我需要预先选择一个单选按钮,如果它有一个保存的值。我基本上需要比较valuestack中的2个字符串来确定这一点。

(目前我无法使用<s:radio,因为我需要根据表单中的其他输入元素附加一些业务规则。)

我尝试<s:set s:iterate<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> 内的已保存ID的值,然后将其与下面进行比较,但显然我没有做对。

<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>                       

基本上我需要比较两个字符串,我的代码如下。我知道我无法与下面的equals()进行比较 - 任何想法?

非常感谢!

{{1}}

此致 VeeCan

2 个答案:

答案 0 :(得分:8)

你试过了吗?

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

如果“id”是一个字符串,OGNL将允许您使用String的方法。

答案 1 :(得分:1)

<s:iterator>形式的<s:if>访问<s:if><s:iterator>loadUserList

例如:假设UserName是在jsp中迭代的迭代器(包含Address 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> ),

{{1}}

OGNL with s:if and s:iterator