1.一个Action里有一个类对象(model)类型的成员变量时,要在url里传递参数时才会new一个这个类的对象;
2.如果这模型类中有一个或多个有参数的构造函数,则需要同时显示地给出默认构造函数(即没有带参数的构造函数);
3.获取值栈中的对象属性或方法,可以用XXX.xx来得到。
4.访问静态属性或静态方法:
<s:property value="@完整的类名@静态属性名"/>
<s:property value="@完整的类名@静态方法名"/>
e.g. 访问User类中的静态属性Count:
<s:property value="@com.bpf.struts2.ogn.User@Count"/>
注:如需要在struts.xml中配置:
Action类:
public class UserAction extends ActionSupport { private String password; private String username; private User user; //类对象类型的成员(Model) public String exectute() { return SUCCESS; } public String getPassword() { return password; } public User getUser() { return user; } public String getUsername() { return username; } public void setPassword(String password) { this.password = password; } public void setUser(User user) { this.user = user; } public void setUsername(String username) { this.username = username; } }
Model类:User
public class User { int age; public User()//不可缺少 { } public User(int age) { this.age = age; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String toString() { return "user" + age; } }
JSP:
<body>
<ol>
<li> 访问值栈中的action的普通属性:username=<s:property value="username" /> </li>
<li> 访问值栈中对象的普通属性:<s:property value="user.age"/> </li>
</ol>
</body>