public interface IBean {
public java.io.Serializable getId();
}
[code=Java][code=Java]public class UserInfo implements IBean {
private Integer id;
private String userName; public Integer getId() {
return this.id;
} public void setId(Integer id) {
this.id = id;
} public String getUserName() {
return this.userName;
} public void setUserName(String userName) {
this.userName = userName;
}
}页面的<s:textfield name="userInfo.id"></s:textfield>传值到action 得不到id,为什么?java.lang.IllegalArgumentException: id to load is required for loading

解决方案 »

  1.   

    可以直接通过EL表达式获取就行了。<s:textfield name="${id}">
    如果要通过这种方式获取值的话<s:textfield name="userInfo.id"> 
    你在Action里要有userInfo这个实体对象的get、set方法,这样就可以用你那种方式取得值。
      

  2.   

    "<s:textfield name="userInfo.id">"
    lz 如果想通过  对象.属性的方法去赋值, 那么你的action中必须
    定义属性: private UserInfo userInfo;
    这样才能获取userInfo.id.
     
      

  3.   

    action中有
    private UserInfo userInfo; 还是得不到userInfo.id
    把接口改为
    public interface IBean {
        public Integer getId();
    }
    就可以得到,为什么呢还有接口定义成这样
    public interface IBean {
        public java.io.Serializable getId();
    }
    是为了实现有联合主键的情况
      

  4.   


    你要使用这方法在页面传值的你的java代码里只要在有接受的userInfo这个对象的get和set函数就可以啦
      

  5.   

    注意那个接口啊,同志们T o T
      

  6.   

    我觉得应该同你在userInfo类里边定义的id类型有关系。
    关于实现 java.io.Serializable 接口的类是可序列化,建议可以查阅相关使用手册。
      

  7.   

    <s:textfield name="userInfo.id"> </s:textfield> 改成
    <s:textfield name="id"> </s:textfield> 就好了
    Struts2里用的是值栈,用id直接让它自己找好了
      

  8.   

    你action呢?不看你action怎么知道怎么改
      

  9.   

    因为我要得到bean的主键,有的bean是用的联合主键,用主键去查询
    我现在把接口中的方法名改了,也得到想要的结果,但是我就是不懂为什么这样就得不到id了,仅此而已