您的位置:首页 > 编程语言 > Java开发

struts2常用标签

2013-08-09 09:54 316 查看
要在jsp中使用Struts2的标志,先要指明标志的引入。通过jsp的代码的顶部加入以下的代码:

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


1.property

此标签主要是在页面上输出需要显示的值。

①显示ognl表达式里的值

<s:property value="username"/>


这里的username是ognl表达式,可以通过<s:debug></s:debug>标签来显示出保存在栈内的变量

②显示自定义的字符串常量

<s:property value="'username'"/>


这会在页面上显示username字符串

③设定默认值

<s:property value="admin" default="管理员"/>


显示ognl表达式admin里的值,如果找不到admin则默认赋值"管理员"并显示出来。

④设定HTML

<s:property value="'<hr/>'" escape="false"/>


escape默认为true,表示将value里的值当做是字符串显示出来,如果为false表示不将value里的值转换成字符串,而做为HTML语句输出来。

2.set

此标签主要是设置参数的值

<s:set var="adminName" value="username" />


注意value里是ognl表达式,如果给adminName设置一个字符串,则需要加上单引号。

如果不设置范围,那么adminName变量默认保存在request 和 ActionContext下面:

①从request取值

<s:property value="#request.adminName" />


②从ActionContext取值(直接通过#获取变量对应的值)

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


可以设定变量保存的范围(范围有application,session,request,page和action几种)

<s:set name="adminPassword" value="password" scope="page"/>


从相应范围取值(默认范围是action,即保存在ActionContext里)

<%=pageContext.getAttribute("adminPassword") %>


3.bean

用来定义bean,并使用param来设定新的属性值。

<s:bean name="com.bjsxt.struts2.tags.Dog" var="myDog">
<s:param name="name" value="'oudy'"></s:param>
</s:bean>


定义一个Dog类的对象myDog,此对象保存在ActionContext内,如果要拿出myDog参数的值则直接用#

<s:property value="#myDog.name"/>


4.include

和<jsp:include page="/public/head.jsp" />的功能一样,但是尽量少用。

<s:include value="/_include1.html"></s:include>


注意这里的value里是字符串,如果需要放ognl表达式时,他会自动当成字符串。

<s:set var="incPage" value="%{'/_include1.html'}" />
<s:include value="#incPage"></s:include>
<s:include value="%{#incPage}"></s:include>


第一个include会吧#incPage当成字符串,第二个include通过%{},先让#incPage当成ognl表达式取出保存的值,这样value就会把取出的值当做字符串来去找相关的页面,%{}的功能就是强制性让括号内的转换成ognl表达式。

5.if elseif else

<%request.setCharacterEncoding("utf-8");%>
country=<%=request.getParameter("country") %><br>
<s:if test="#parameters.country[1] == 'www'">中国</s:if>
<s:elseif test="#parameters.country[0] == '美国'">美国</s:elseif>
<s:else >其他国籍的人</s:else>


注意:Struts2将URL传的参数封装成一个数组并保存在ActionContext内的parameters对象里,所以可以通过ognl表达式#parameters来获取对应的参数值,如果一个URL内传两个同名的参数时(即?name=a&name=b),则将这两个值继续封装成一个数组保存在对应的参数名下,通过#parameters.name[1]可以这样取值。

6.iterator

①遍历

<s:iterator value="{1, 2, 3}" >
<s:property/> |
</s:iterator>


property显示每次循环的值。

②自定义变量

<s:iterator value="{'aaa', 'bbb', 'ccc'}" var="x">
<s:property value="#x.toUpperCase()"/> |
</s:iterator>


自定义变量x保存每次循环的值,保存在ActionContext内。

③使用status

status里保存了每次循环的状态

<s:iterator value="{'aaa', 'bbb', 'ccc'}" status="status">
<s:property/> |
遍历过的元素总数:<s:property value="#status.count"/> |
遍历过的元素索引:<s:property value="#status.index"/> |
当前是偶数?:<s:property value="#status.even"/> |
当前是奇数?:<s:property value="#status.odd"/> |
是第一个元素吗?:<s:property value="#status.first"/> |
是最后一个元素吗?:<s:property value="#status.last"/>
<br />
</s:iterator>


④遍历map

遍历map需要加#

<s:iterator value="#{1:'a', 2:'b', 3:'c'}" >
<s:property value="key"/> | <s:property value="value"/> <br />
</s:iterator>
<s:iterator value="#{1:'a', 2:'b', 3:'c'}" var="x">
<s:property value="#x.key"/> | <s:property value="#x.value"/> <br />
</s:iterator>


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: