日期:2014-05-17  浏览次数:20887 次

高手请进,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参考
------解决方案--------------------
探讨
<%@ taglib uri="/struts-tags" prefix="struts" %>这是自己写的标签?还是自带的呢,真高深。。