高手请进,struts2的问题
public class UserInfo {
String id;
String name;
String age;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
}
public class PersonAction extends ActionSupport{
public static List<UserInfo> personlist = new ArrayList<UserInfo>();
UserInfo userOneInfo = new UserInfo();
public static List<UserInfo> getPersonlist() {
return personlist;
}
public static void setPersonlist(List<UserInfo> personlist) {
PersonAction.personlist = personlist;
}
public String Add()
{
personlist.add(userOneInfo);
return "list";
}
public String list()throws Exception
{
for(int i = 0; i < 10; i++)
{
UserInfo temp = new UserInfo();
temp.setName("dingding");
temp.setId("1");
temp.setAge("20");
personlist.add(temp);
}
return "list";
}
}
上面的内容通过下面的链接访问:
<li><a href="<struts:url action = "listPerson"/>" target="mainFrame">人员列表</a></li>
下面为listPerson.jsp的代码:
<%@ page contentType="text/html; charset=utf-8" language="java" import="java.sql.*"
errorPage="" %>
<%@ taglib uri="/struts-tags" prefix="struts" %>
<title><struts:property value="titile" escape="false" /></title>
<a href="addPerson.jsp">新建人员资料</a>
<table>
<tr>
<th>ID</th>
<th>姓名</th>
<th>年龄</th>
</tr>
<struts:iterator id="userOneInfo" value="personlist">
<tr>
<td>${userOneInfo.id}</td>
<td>${userOneInfo.name}</td>
<td>${userOneInfo.age}</td>
</tr>
</struts:iterator>
</table>
上面personlist的内容怎么也显示不出来,总是为空。
请哪位高人帮我调通了上面的代码。谢谢
------解决方案--------------------personlist 用成员变量,不要用静态变量
------解决方案--------------------public static List<UserInfo> personlist = new ArrayList<UserInfo>();
这个是静态的。。。。应该自动映射不到页面
可加一个request.setAttri...("personlist", personlist);
如果要映射静态属性或方法,必须要在strust.xml中配置
struts.ognl.allowStaticMethodAccess设置为true 启用静态方法调用。。而静态方式的调用在页面上获取的方式是不一样的。。如:struts.ognl.allowStaticMethodAccess设置为true
如:访问静态方法:@包.类名@方法名(),如:
@cn.edu.ahau.mgc.struts2.model.Magci@method();
访问静态属性:@包.类名@属性名,如:
@cn.edu.ahau.mgc.struts2.model.Magci@NAME
调用Action中的静态方法:<s:property value="@struts.action.LoginAction@get()"/>
调用普通类中的静态属性:<s:property value="@struts.vo.Address@TIPS"/>
http://blog.csdn.net/xiaoping8411/article/details/4771214参考
------解决方案--------------------