pushtagaction.java
package com.h3.common.action; import com.opensymphony.xwork2.actionsupport; public class pushtagaction extends actionsupport{ public string execute() throws exception { return success; } }
person.java
package com.h3.common; public class person{ private string firstname = "this is firstname"; private string lastname = "this is lastname"; public string getfirstname() { return firstname; } public string getlastname() { return lastname; } }
push.jsp
<%@ taglib prefix="s" uri="/struts-tags" %> <html> <head> </head> <body> <h1>struts 2 push tag example</h1> <h2>1. normal way</h2> <s:bean name="com.h3.common.person" var="personbean" /> first name : <s:property value="#personbean.firstname" /><br/> last name: <s:property value="#personbean.lastname" /><br/> <h2>2. push way</h2> <s:push value="#personbean" > first name : <s:property value="firstname" /><br/> last name: <s:property value="lastname" /><br/> </s:push> </body> </html>
它是如何工作的?
通常情况下,如果你想获得bean的属性,可以参考它,如 <s:property value=”#personbean.firstname” />。使用 <s:push>标签, 可以推“#personbean”到堆栈的顶部,并直接访问属性 <s:property value=”firstname” />。两者都返回相同的结果,但使用不同的接入机制。
<?xml version="1.0" encoding="utf-8" ?> <!doctype struts public "-//apache software foundation//dtd struts configuration 2.0//en" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <constant name="struts.devmode" value="true" /> <package name="default" namespace="/" extends="struts-default"> <action name="pushtagaction" class="com.h3.common.action.pushtagaction" > <result name="success">pages/push.jsp</result> </action> </package> </struts>
http://localhost:8080/struts2pushtag/pushtagaction.action
在浏览器中打开上面的网址,显示结果如下: