疏忽,也没有相应的总结。实际上JSTL标签Struts2标签混淆。导致一些上述问题的细节。今天我给从下一个总结,同
后不要再犯这种错误。
总喜欢在s:if标签里面使用$,导致各种数据读不出来。
strust 2 if 标签的单个字符字符串比較的问题;
还有就是啥时候用#,啥时候不用#,啥时候能够省略#。
代码1、
<select id="typeProvider" name="typeProvider" style="width: 200px;"> <s:iterator value="providers" var="provider"> <option value="${provider.id}" <s:if test="id==equipment.provider.id">selected="selected"</s:if> >${provider.name} </option> </s:iterator> </select>
equipment(本设备对象)、providers(全部供应商List)均有后台Action提供geter/setter方法。
这行代码(正确):
<s:if test="<span style="color:#33CC00;">id</span>==equipment.provider.id">selected="selected"</s:if> >${provider.name}这个位置,总是写成( 错误):
<s:if test="<span style="color:#FF0000;">provider.id</span> == equipment.provider.id">selected="selected"</s:if> >${provider.name}后面发现能够这样写 (也正确):
<s:if test="<span style="color:#33CC00;">#provider.id</span>==equipment.provider.id">selected="selected"</s:if> >${provider.name}
事实上原理还真是不怎么清楚。仅仅知道假设action中假设声明了变量,并赋之以set,get方法,那么接收參数是不须要使用#,假如就是普通的request传递,则须要用#。哪位大神假设知晓。希望可以指点一二。
代码2、
<span style="font-size:14px;"> <s:iterator value="equipmentList" var="equipment" status="status"> <tr style="height: 25px; text-align: center;"> <td><s:property value="#status.index+1"/></td> <td>${equipment.terorder}</td> <td>${equipment.tertype}</td> <td>${equipment.provider.name}</td> <td> <s:if test="#equipment.isuser==1"> 启用 </s:if> <s:if test="isuser == 0"> 禁用 </s:if> </td> <td>${equipment.opercard}</td> <td>${equipment.bizcard}</td> </tr> </s:iterator></span>
<s:if test="%{#items.tm_onlinestatus == 1}"> <span style="color:blue">在线</span> </s:if> <s:if test="%{#items.tm_onlinestatus == 0}"> <span style="color:red">下线</span> </s:if>
只是这样写就不正确啦(错误)!
<span style="font-size:14px;"> <s:if test="%{#items.tm_onlinestatus == <span style="color:#FF0000;">'1'</span>}"> <span style="color:blue">在线</span> </s:if> <s:if test="%{#items.tm_onlinestatus == <span style="color:#FF0000;">'0'</span>}"> <span style="color:red">下线</span> </s:if></span>
<span style="font-size:14px;"> <s:if test='%{#items.tm_onlinestatus == <span style="color:#33CC00;">"1"</span>}'> <span style="color:blue">在线</span> </s:if> <s:if test='%{#items.tm_onlinestatus == <span style="color:#33CC00;">"0"</span>}'> <span style="color:red">下线</span> </s:if></span>