User类public class User implements Serializable {
private String username;
private String password; public String getUsername() {
return username;
} public void setUsername(String username) {
this.username = username;
} public String getPassword() {
return password;
} public void setPassword(String password) {
this.password = password;
}
}Action类:
public class LoginAction extends ActionSupport {

User[] user = new User[10];
public String execute() throws Exception {
System.out.println(user[0].getUsername());
System.out.println(user[0].getPassword());
System.out.println(user[1].getUsername());
System.out.println(user[1].getPassword());
return super.execute();
}
public User[] getUser() {
return user;
}
public void setUser(User[] user) {
this.user = user;
}
}jsp页面:
<s:form action="login.action">
<s:textfield label="username-1" name="user[%{0}].username"/>
<s:password label="password-1" name="user[%{0}].password" maxlength="6"/>
<s:textfield label="username-2" name="user[%{1}].username"/>
<s:password label="password-2" name="user[%{1}].password" maxlength="6"/>
<s:submit/>
</s:form>我这个写法对么????为什么action不能成功拿到user数组里的值呢???是不是需要什么添加其他的配置。、、、着急在线等

解决方案 »

  1.   

    其实jsp就是这样的:[%{0}]是当初试的,忘了改,<s:form action="login.action">
    <s:textfield label="username-1" name="user[0].username"/>
    <s:password label="password-1" name="user[0].password" maxlength="6"/>
    <s:textfield label="username-2" name="user[1].username"/>
    <s:password label="password-2" name="user[1].password" maxlength="6"/>
    <s:submit/>
    </s:form>反正都没结果,成堆这样打印异常。。警告: Error setting value
    ognl.OgnlException: target is null for setProperty(null, "password", [Ljava.lang.String;@16b61c3)
    at ognl.OgnlRuntime.setProperty(OgnlRuntime.java:1651)
    at ognl.ASTProperty.setValueBody(ASTProperty.java:101)
    at ognl.SimpleNode.evaluateSetValueBody(SimpleNode.java:177)
    at ognl.SimpleNode.setValue(SimpleNode.java:246)
    at ognl.ASTChain.setValueBody(ASTChain.java:172)
    at ognl.SimpleNode.evaluateSetValueBody(SimpleNode.java:177)
      

  2.   

    System.out.println(user[0].getUsername());
    这个只是输出语句;
    你应该这样:user[0].setUsername("");
      

  3.   

    按这里的方法实现:http://shaqiang32.javaeye.com/blog/221305
      

  4.   

    你开始就取值到页面上显示   实体类里面的属性肯定为空  你的用struts2的标签在页面上判断属性是不是为空
      

  5.   

    个人意见。不知道对不对
    User[] user = new User[10]; 别new 仅仅把他当成个属性,你既然写了set和get 方法。不搭理他。。你JSP上只有2个User的信息。你又new了10个。你让框架给你赋值也就能赋2个User的。其他8个铁定是空的。
      

  6.   

    你这样些肯定有问题,LZ试着把USER类和ACTION类写在一起,提交时候拦截器会自动把页面数据封装到指定MODEL里,也是通过
    setter 机制吧,你从EXECUTE 里直接用 getUserName()即可取值。如果像你这样写,把MODEL和ACTION分开写,你必须实现 ACTION,MODELDRIVEN接口。不行再找我。