Struts2 <s:property>標籤實例

Struts2的<s:property>標籤是用來從一個類獲得屬性值,如果沒有指定,這將默認為當前Action類(堆疊的頂部)屬性。在本教程中,它展示了如何使用 <s:property> 標籤,以從目前Action類獲得其他bean類的屬性值。


1. 動作類

這裏有一個Action類,有一個 name 屬性。

PropertyTagAction.java

package com.xuhuhu.common.action;

import com.opensymphony.xwork2.ActionSupport;

public class PropertyTagAction extends ActionSupport{

	private String name = "Name from PropertyTagAction.java";

	public String getName() {
		return name;
	}

	public String execute() throws Exception {

		return SUCCESS;
	}
}

2. Bean

一個簡單的Java類,它有一個 name 屬性。

Person.java

package com.xuhuhu.common;

public class Person {

	private String name = "Name from Person.java";

	public String getName() {
		return name;
	}

}

3. <s:property>標籤示例

它展示了如何使用<s:property>標籤,從PropertyTagAction與“Person”類獲得name屬性值。

property.jsp

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

<body>
<h1>Struts 2 property tag example</h1>

<h2>1. Call getName() from propertyTagAction.java</h2>
<s:property value="name" />

<h2>2. Call getName() from Person.java</h2>
<s:bean name="com.xuhuhu.common.Person" var="personBean" />
<s:property value="#personBean.name" />

</body>
</html> 
“property.jsp”頁面是“PropertyTagAction”動作返回一個成功的結果頁面。如果指定了<s:property value=”name” />在“property.jsp”頁面,默認為當前的Action類“PropertyTagAction.getName()”屬性。

4. struts.xml

<?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="propertyTagAction"
			class="com.xuhuhu.common.action.PropertyTagAction" >
			<result name="success">pages/property.jsp</result>
		</action>

	</package>
</struts>

5. 示例

http://localhost:8080/struts2propertytag/propertyTagAction.action

在流覽器中打開上面的URL,顯示結果如下:

參考

  1. Struts2 <s:property>標籤文檔

代碼下載 - http://pan.baidu.com/s/1t7m2M


上一篇: Struts2 <s:param>標籤示例 下一篇: Struts2 <s:push>標籤示例