struts 2标签之s:if 、s:iterator注意的问题
2014-10-18 11:21
351 查看
由于粗心,也没有相应总结,竟然将JSTL标签与Struts2标签混淆,从而导致了一些细节上面的问题,今天我给自个总结下,以
后不要再犯这样的错误。
总喜欢在s:if标签里面使用$,导致各种数据读不出来;
strust 2 if 标签的单个字符字符串比较的问题;
还有就是啥时候用#,啥时候不用#,啥时候可以省略#。
代码1、
代码作用:跳转到修改资料页面时,下拉列表默认选中的为本设备所对应的供应商
equipment(本设备对象)、providers(所有供应商List)均有后台Action提供geter/setter方法。
这行代码(正确):
其实原理还真是不怎么清楚,只知道如果action中如果声明了变量,并赋之以set,get方法,那么接收参数是不需要使用#,假如就是普通的request传递,则需要用#。哪位大神如果知晓,希望能够指点一二。
代码2、
还是得说说这个,不过却还要其他问题,代码如下(正确):(注意此时的tm_onlinestatus为String类型)
不过这样写就不对啦(错误)!
还要一种写法,估计更容易理解(正确):
这里的话:因为java是强类型语言,单引号表示char类型,只能赋给一个字符给char类型,而双引号则表示String类型,因为tm_onlinestatus属性是String类型,那么必须要用双引号。然后对于为何可以不用直接 == 1 这个的话也不是很明白,同样希望指点一二。
后不要再犯这样的错误。
总喜欢在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="id==equipment.provider.id">selected="selected"</s:if> >${provider.name}这个位置,总是写成(错误):
<s:if test="provider.id == equipment.provider.id">selected="selected"</s:if> >${provider.name}后面发现可以这样写(也正确):
<s:if test=">#provider.id==equipment.provider.id">selected="selected"</s:if> >${provider.name}
其实原理还真是不怎么清楚,只知道如果action中如果声明了变量,并赋之以set,get方法,那么接收参数是不需要使用#,假如就是普通的request传递,则需要用#。哪位大神如果知晓,希望能够指点一二。
代码2、
<span style="white-space:pre"> </span><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>
还是得说说这个,不过却还要其他问题,代码如下(正确):(注意此时的tm_onlinestatus为String类型)
<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="white-space:pre"> </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>
还要一种写法,估计更容易理解(正确):
<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>
这里的话:因为java是强类型语言,单引号表示char类型,只能赋给一个字符给char类型,而双引号则表示String类型,因为tm_onlinestatus属性是String类型,那么必须要用双引号。然后对于为何可以不用直接 == 1 这个的话也不是很明白,同样希望指点一二。
相关文章推荐
- struts 2标签之s:if 、s:iterator注意的问题
- MyBatis中if标签注意问题
- struts2系列十七之常用的struts标签set,property,iterator,include,if,error,判断奇偶
- struts2 iterator中if标签的使用
- struts 2吊牌s:if 、s:iterator注意
- Struts 2中if else iterator property标签的使用 .
- jsp引入struts标签,引入自己写的jquery需要注意的问题
- struts 标签if中不能有EL表达式问题
- 解决struts标签不能嵌套问题
- 使用Struts中logic:iterate标签的问题
- Struts使用标签的问题
- 存储过程中,goto语句和if else语句注意,标签的位置问题导致条件语句失效
- 标签报org.apache.struts.action.InvalidCancelException错误问题
- 网页制作中注意应用html标签的问题
- struts iterator 标签 之 indexId
- 使用struts bean:write标签时不能显示Integer,BigDecimal等类型的属性问题的解决
- struts checkbox 标签 选中与不选中的使用问题
- Struts源码研究 - logic-Iterator标签篇
- 关于struts表单验证应注意的几个小问题
- 初学struts有些问题要注意!