`

Struts2 标签使用简介

阅读更多

web.xml配置如下:

<filter>
		<filter-name>struts2</filter-name>
		<filter-class>
			org.apache.struts2.dispatcher.FilterDispatcher
		</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>struts2</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

 

struts.xml配置如下:

<package name="tags" extends="struts-default">
		<action name="tags" class="com.mengya.action.TagsAction">
			<result name="success">/tags.jsp</result>
		</action>
	</package>

 TagsAction如下:

public class TagsAction extends ActionSupport {
	private String username;

	private String password;
	
	@Override
	public String execute() throws Exception {
		this.addFieldError("actionError", "error!!");
		return SUCCESS;
	}
	
	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

	public String getUsername() {
		return username;
	}

	public void setUsername(String username) {
		this.username = username;
	}

}

 Dog Bean如下:

public class Dog {
	private String dogName;

	public String getDogName() {
		return dogName;
	}

	public void setDogName(String dogName) {
		this.dogName = dogName;
	}

	@Override
	public String toString() {
		return "Dog:DogName=" + dogName;
	}

}

 页面struts标签使用如下:

<a href="tags.action?username=u&password=p&age=9">Struts2Tags</a>


<body>
		<ol>
			<li>
				property:
				<s:property value="username" />
			</li>
			<li>
				property 取值为字符串:
				<s:property value="'username'" />
			</li>
			<li>
				property 设定为默认值:
				<s:property value="admin" default="管理员" />
			</li>
			<li>
				property 设定为HTML:
				<s:property value="'<hr/>'" escape="false" />
			</li>
			<hr />
			<li>
				set 设定mengya的值(默认为Request和ActionContext):
				<s:set var="mengya" value="username"></s:set>
			</li>
			<li>
				set 从request中取值:
				<s:property value="#request.mengya" />
			</li>
			<li>
				set 从ActionContext中取值:
				<s:property value="#mengya" />
			</li>
			<li>
				set 设定范围:
				<s:set var="adminPassword" value="password" scope="session" />
			</li>
			<li>
				set 从相应的范围取值:
				<%=session.getAttribute("adminPassword")%>
			</li>
			<li>
				set 从相应的范围取值:
				<s:property value="#session.adminPassword" />
			</li>
			<hr>
			<li>
				bean 定义bean,并使用bean的param来设定的新属性值
				<s:bean name="com.mengya.bean.Dog"></s:bean>
				<%-- 没有指定var则在</s:bean>之前会构造一个对象放在椎顶在</s:bean>结束之前则放到了actionContext中 --%>
			</li>
			<li>
				bean 定义bean,并使用bean的param来设定的新属性值
				<s:bean name="com.mengya.bean.Dog" var="myDog">
					<s:param name="dogName" value="'myDog'"></s:param>
				</s:bean>
				取出值:
				<s:property value="#myDog" />
			</li>
			<hr>
			<li>
				include 包含静态英文html
				<s:include value="/include1.html"></s:include>
			</li>
			<li>
				include 包含静态中文html
				<s:include value="/include2.html"></s:include>
			</li>
			<li>
				<font color="red">%的用法:%是将%{}中的内空强转成ognl表达示而不是普通字符串</font>
				<s:set var="incPage" value="'/include1.html'"></s:set>
				<br>
				<s:include value="incPage"></s:include>
				<br>
				<s:include value="%{incPage}"></s:include>
				<%-- 将incPage作为ognl表达式 --%>
			</li>
			<li>
				fielderror:
				<s:fielderror key="actionError" theme="simple"></s:fielderror>
			</li>
			<hr>
			<li>
				if elseif else: age =
				<s:property value="#parameters.age[0]" />
				<s:if test="#parameters.age[0]<0">
					age error!
				</s:if>
				<s:elseif test="#parameters.age[0]<20">
					to young!
				</s:elseif>
				<s:else>
					OK!
				</s:else>
				&nbsp;&nbsp;|&nbsp;&nbsp;
				<s:set var="age" value="#parameters.age[0]"></s:set>
				<s:if test="age<0">
					age error!
				</s:if>
				<s:elseif test="age<20">
					to young!
				</s:elseif>
				<s:else>
					ok!
				</s:else>
				&nbsp;&nbsp;|&nbsp;&nbsp;
				<s:if test="#parameters.aaa==null">null</s:if>
			</li>
			<li>
				遍历集合:
				<br>
				<s:iterator value="{'aa','bb','cc'}">
					<s:property />&nbsp;|&nbsp;
				</s:iterator>
			</li>
			<li>
				自定义变量:
				<br>
				<s:iterator value="{'aa','bb','cc'}" var="temp">
					<s:property value="#temp" />&nbsp;|&nbsp;<s:property
						value="#temp.toUpperCase()" />
				</s:iterator>
			</li>
			<li>
				使用status:
				<br>
				<s:iterator value="{11,22,33}" status="status">
					<s:property />&nbsp;|遍历过的总元素:<s:property value="#status.count" />&nbsp;|当前元素索引:<s:property
						value="#status.index" />&nbsp;|当前值是否为偶数:<s:property
						value="#status.even" />&nbsp;|当前值是否为奇数:<s:property
						value="#status.odd" />&nbsp;|当前值是否为第一个:<s:property
						value="#status.first" />&nbsp;|当前值是否为最后一个:<s:property
						value="#status.last" />
					<br />
				</s:iterator>
			</li>
			<s:debug></s:debug>
		</ol>
		总结:
		
		$用于i18n和struts配置文件
		#用于得到ActionContext的值
		%将原本的文本属性解析为OGNL表达式,对于本来就是OGNL的属性不起做用
		
	</body>

  

  • Struts2Tags.rar (3.6 MB)
  • 描述: Struts2 标签使用简介实例
  • 下载次数: 35
1
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics