Struts2的<s:property>标签是用来从一个类获得属性值,如果没有指定,这将默认为当前Action类(堆栈的顶部)属性。
1. 动作类
这里有一个Action类,有一个 name 属性。
PropertyTagAction.java
package com.bdqn.smfy;
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.bdqn.smfy;
public class Person {
private String name = "Name from Person.java";
public String getName() {
return name;
}
}
3. 在jsp页面上使用<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.bdqn.smfy.Person" var="personBean" />
<s:property value="#personBean.name" />
</body>
</html>
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.bdqn.smfy.action.PropertyTagAction" >
<result name="success">pages/property.jsp</result>
</action>
</package>
</struts>