public User{
   private String userid;
   private String password;
   private Classes classes;//班级
  //getter and setter
   ......
}public Classes {
   private String classesid;
   private String classesname;
   private Major major;//专业
  //getter and setter
   ......
}public TestAction  extends ActionSupport{
    private UserService us;
    private User user;
    public String execute() throws Exception{
       us.inser(user);
    }    
}//jsp页面
<s:textfiled name="user.userid"/>
<s:textfiled name="user.password"/>
<s:textfiled name="user.classes.classesid"/>jsp页面提交后,如何能将classesid的值传给user对象中的classes属性呢,并且将classes完全初始化呢?

解决方案 »

  1.   

    <s:textfiled name="user.classes"/> 
    把值赋给对像的相应属性就这样格式的命名就是正确的:name="xxx.xxx"
    系统会自动进行相应的赋值。
    但是不建议用这样的命名,我在使用的过程中经常出现问题,比如类型转换错误什么的不好控制
    ,不建议你这么用。
      

  2.   

    楼上的:
    <s:textfiled name="user.classes.classesid"/> 这些填写的是classesid
    <s:textfiled name="user.classes"/>这样定义能好用吗,我试验不好用呀!
      

  3.   

    嗯。关注。
    是不是用了Hibernate呀?
      

  4.   

    第一种是可用的,但是在你的action中必须有一个user变量,且有set,get方法。如下:
    public TestAction  extends ActionSupport{ 
        private UserService us; 
        private User user; 
        public void setUser(){...}
        public UsergetUser(){...}
        public String execute() throws Exception{ 
          us.inser(user); 
        }    

    至于下一种方式是行不同的,你不能直接给对象赋值,而只能给对象里面的属性赋值。
    PS:这不是绝对的,可用覆盖类的toString方法,还有另一个解析的方法(忘了,所以不说了)。