一、s标签
在struts-2.3.15.1/docs/WW/docs/tag-reference.html下,就有着struts2所有标签的参考文献,只能看看其中比较常用的标签。因为标签太多了,所以我们之介绍我们
常用的标签。
1.1、if、elseif、else标签
结果:
1.2、iterator标签
迭代器标签,用来循环迭代集合或数组中的数据。
结果:
迭代list集合:
控制循环次数:
获取迭代时的状态信息:
1.3、set标签
1.4、action标签
s:action 在jsp页面中调用action
如果要显示指定动作的结果,需要使用executeResult属性。
executeResult取值就true和false,默认为false。
在test.jsp中
结果:
1.5、url和a标签
url中的属性:
s:url就是创建一个地址
value属性:输出的就是value的值。注意:value的取值不再是一个ognl表达式,而是普通的字符串
action属性:输出的是action2的请求地址。和${pageContext.reqeust.contextPath}/action2.action是一样的。
但是,它可以随着配置文件中的扩展名的改变而改变。
var属性:会把action的值存到contextMap中
结果:
a标签:
在test.jsp中
就这些代码和上面是等效的。
1.6、<s:property />标签
用来执行ognl表达式,最为常用的方式是使用它在页面上输出ValueStack或ActionContext中的数据。
二、struts2中#、$、%的使用
1、#的使用
a、取contextMap中key时使用,例如<s:property value="#name" />
b、OGNL中创建Map对象时使用,例如:<s:radio list="#{'male':'男','female':'女'}" />
2、$的使用
a、在JSP中使用EL表达式时使用,例如${name}
b、在xml配置文件中,编写OGNL表达式时使用,例如文件下载时,文件名编码。
struts.xml——>${@java.net.URLEncoder.encode(filename)}
3、%的使用
在struts2中,有些标签的value属性取值就是一个OGNL表达式,例如<s:property value="OGNL Expression" />
还有一部分标签,value属性的取值就是普通字 符串,例如<s:textfield value="username"/>,如果想把一个普通的字符串强制看成时OGNL,就需要使用%{}把字符串套起来。
例如<s:textfield value="%{username}"/>。当然在<s:property value="%{OGNL Expression}" />也可以使用,但不会这么用。