struts2 标签

 

 <%@taglib uri="/struts-tags"   prefix="s"%>

 

 

struts中的标签可以使用java中的一些函数

 1 其中带有#号的为当前循环的对象内取数据 不带符号的versionP 从action中传过来的数据

	
	<s:iterator value="listVersion" id="shujuVMap">
		<option value="<s:property value='#shujuVMap.version'/>" 
			<s:if test="versionP.equals(#shujuVMap.version)">selected</s:if>
		>版本<s:property value='#request.version'/>
		</option>
	</s:iterator>

 

 

2  struts2中list遍历使用 

 

 

	<s:iterator value="listUserNote" id="note"  status="status">
		<s:if test="listPoint[#status.index]!=null&& listPoint[#status.index].size()>0">
				<s:iterator value="listPoint[#status.index]" id="point" status="st">
					     <s:property value="point.id"/>     
				         <s:property value="point.name"/>  
				</s:iterator>     
		</s:if>
	</s:iterator>

 

 

 

3   set标签的使用-----

 

<s:set name="test" value="'测试'" />

<s:property value="#test" />

 

最近在项目开发中,需要一个把一个List中的id,循环输出到一个js里面。测试了半天,得到如下代码。

(假设test这个list中有个ID字段,值为1 2 3 4)

<script>
var aa="";
<s:set name="ttt" value="-1" /> 
<s:iterator id="epslist" value="test" status="index">
 <s:set name="ttt" value="#ttt+','+#epslist.id" />
</s:iterator>
   aa="<s:property value="#ttt" />";
</script>

 

 

循环之后aa值="-1,1,2,3,4"。(这里根据自己的需要把红色部分的value改为自己需要的,然后在用js操作该aa的值)

 

注意红色部分,如果删除掉红色部分代码,aa值为""(不是null).

如果把红色部分代码改为<s:set name="ttt" value="" /> 或者<s:set name="ttt" />

 

结果是:

第一种情况 aa="null,1,2,3,4";

第二种情况 aa= **.**.**.**@***,1,2,3,4 ;

遇到过set设置了字符串不能显示的情况例如

<s:set name="ttt" value="abc" />

<s:property value="#ttt"/>按道理说可以显示了啊。其实暗藏玄机,就是这时候他把abc当成变量来取值,而不是看成字符串。所以要想看成字符串必须加单引号。<s:set name="ttt" value="’abc‘" />

 

 

set标签是将某个值放到指定范围内, 比如说 student.teacher.parent.age 每次访问这个属性不仅性能低,而且代码可读性很差,为了解决这个问题,可以将这个值设置为一个新值,并且放入指定范围内

name 是必填属性,是重新生成的新变量的名字

scope 可选属性,指定新变量被放置的范围,可以接受application,session,request,page,action 这5个值 没有指定默认是Stack Context中

value 可选属性,指定变量的值 如果没有指定,使用ValueStack栈顶的值赋给新变量

id 可选属性,指定新元素的引用ID

 

下面是个例子:

 

<!-- 使用bean标签定义一个javaBean实例--!>

<s:bean name="lee.Person" id="p">
<s:param name="name" value="zhangsan"/>
<s:param name="age" value="29"/>
</s:bean>

 

将p放入默认范围内

<s:set value="#p" name="test"/>
<s:property value="#test.name"/> <br>
<s:property value="#test.age"/> <br>
将p放入application范围内。
<s:set value="#p" name="test" scope="application"/>
<s:property value="#attr.test.name"/> <br>
<s:property value="#attr.test.age"/> <br>
将p放入session范围内。
<s:set value="#p" name="test" scope="session"/>
${sessionScope.test.name} <br>
 

 

赋的值如果是一个表达式,基本都会,我看了楼上的各种回答,清一色的都是赋的表达式,都没有赋常量的例子,

我现在也补充一个,如果value中要赋的是常量,如果直接

<s:set name="page2" value="listMaterialEnt"  scope="session"> </s:set>
这样在页面中是访问不到listMaterialEnt这个字符串,怎么样才能赋这个字符串常量值呢?加个单引号就搞定,这个也是我研究了半天才研究出来,如下:
<s:set name="page2" value="'listMaterialEnt'"  scope="session"> </s:set>

 

  4 if else 语句以及在struts2标签中判断一个字符串包含另一个字符串的时候处理方法

判断一个字符串中是否包含另一个字符串用下面的方法
 <s:if test="%{user.name.indexOf('wang') >= 0 }">
	 姓王
 </s:if>
 <s:else>
	  不姓王
 </s:else>
 

 

 

 

本文作为自己备份查看用。

应用:http://fehly.iteye.com/blog/908841

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值