Ognl通过简单一致的语法,可以任意存取对象的属性或者调用对象的方法,能够遍历整个对象的结构图,实现对象属性类型的转换等功能。
一个简单的例子:
struts.xml
<package name="ognltest" namespace="/ognltest" extends="struts-default">
<action name="UserAction" class="D3.UserAction">
<result name="success">/D3/Userognl.jsp</result>
</action>
action UserAction.java
package D3;
import com.opensymphony.xwork2.ActionSupport;
public class UserAction extends ActionSupport {
private String username;
private String password;
private User user=new User(8);
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String execute(){
return "success";
}
}
实体类 User.java
public class User {
private int age;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public User(){
System.out.println("User默认构造方法。");
}
public User(int age){
this.age=age;
System.out.println("User age构造方法。");
}
}
Userognl.jsp
<body>
<ol>
<li>action属性username=<s:property value="username"/></li>
<li> User类对象属性age=<s:property value="user.age"/></li>
<s:debug></s:debug>
</ol>
</body>
学习于:http://blog.csdn.net/tjcyjd/article/details/6850203
感谢!