本帖最后由 liuwei0604 于 2012-11-19 12:02:12 编辑 这是定义的转换器代码
public class UserConverter3 extends StrutsTypeConverter {
@Override
public Object convertFromString(Map context, String[] values, Class toClass) {
List<User> users = new ArrayList<User>();
for(String value:values){
System.out.println("b");
StringTokenizer st = new StringTokenizer(value,";");
User user = new User();
user.setUsername(st.nextToken());
user.setPassword(st.nextToken());
users.add(user);
}
System.out.println("a");
return users;
}
@Override
public String convertToString(Map context, Object o) {
// TODO Auto-generated method stub
return null;
}
}
这是action的代码
public class UserAction2 extends ActionSupport {
private List<User> user;
public List<User> getUser() {
return user;
}
public void setUsers(List<User> user) {
this.user = user;
}
@Override
public String execute() throws Exception {
for(User u:user){
System.out.println(u.getUsername());
System.out.println(u.getPassword());
}
return SUCCESS;
}
}
这是properties文件的
文件名 UserAction2-conversion.properties
user=convert.UserConverter3
这是struts.xml的配置片段
<action name = "UserAction2" class = "struts2.UserAction2">
<result name="success">/output.jsp</result>
</action>
每个文件的位置都确定了没有问题,希望大神能帮我解答一下,在action的execute方法中的for循环说user空指针异常
------最佳解决方案--------------------------------------------------------
后台的代码看上去已经没什么问题了,看看你前台是怎么提交的
------其他解决方案--------------------------------------------------------
楼主的public void setUsers(List<User> user);
这里多了个s应该是public void setUser(List<User> user);
------其他解决方案--------------------------------------------------------
额 问题不在这里,去掉了s还是没用
------其他解决方案--------------------------------------------------------
<form action = "UserAction2.action">
userinfo1:<input type = "text" name = "user"/>
userinfo1:<input type = "text" name = "user"/>
userinfo1:<input type = "text" name = "user"/>
userinfo1:<input type = "text" name = "user"/>
<input type = "submit" value = "提交">
</form>
嗯 这是我表单的代码
------其他解决方案--------------------------------------------------------
前台的代码没有问题了