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

struts进行自定义的类型转换出现了报Action中空指针异常
本帖最后由 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);
------其他解决方案--------------------
引用:
楼主的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>

嗯 这是我表单的代码