问题是jsp的form提交到action之后有的值可以接收,有些值接收不到(我用的是struts2)
jsp代码:    <s:form action="saveUser">
    <s:textfield name="user.firstname" label="%{getText('firstname')}"></s:textfield>
    <s:textfield name="user.lastname" label="%{getText('lastname')}"></s:textfield>
    <s:textfield name="user.age" label="%{getText('age')}"></s:textfield>
    <s:submit></s:submit>
    </s:form>action代码:
System.out.println(user);
System.out.println(this.user.getFirstname());
System.out.println(this.user.getLastname());
System.out.println(this.user.getAge());数据结果代码:(我在form里面填写的值是  “黄”  “旭”  “12”)
com.test.bean.User@13cc05f
null

0

解决方案 »

  1.   

    没有问题的,我的setter和getter方法都有,而且属性名也对
      

  2.   

    而且比较奇怪的是,我在我的userbean里面的set方法里面加上了print语句,可以显示值,而且正确。
    可是在action里面还是取不到,比较郁闷啊。要是取不到那就都取不到呗,还是个别的取不到。希望大牛解答啊
      

  3.   

    需要注意以下几点:
    (1)Action中包含user对象;
    (2)user对象的类中包含firstname,lastname,age的setter方法。
    如果这些都有的话,很可能是这些值在请求时没有通过get或者post传递到Action。
      

  4.   

    你的user对象被多次初始化了,应该是这个样子的
    贴代码出来看看
      

  5.   


    如果你的action中的对象user有geter、setter方法,user = new User();
    且user对象有firstname,lastname,age的setter方法;
    并且user没有在其它地方或是在获得值之后又被重新赋值;
      

  6.   

    上代码吧.! 估计是你user在getUser之后的某些地方被赋值了.!
      

  7.   

    public class SaveUserAction extends ActionSupport { private User user=new User();
    private UserService userService; public void setUser(User user)
    {
    this.user=user;
    }


    public void setUserService(UserService userService) {
    this.userService = userService;
    } @Override
    public String execute() throws Exception 
    {
    System.out.println(user);
    System.out.println(this.user.getFirstname());
    System.out.println(this.user.getLastname());
    System.out.println(this.user.getAge());

    this.userService.save(this.user);

    return SUCCESS;
    }
    }package com.test.bean;public class User 
    {
    private Integer id;
    private int age;
    private String firstname;
    private String lastname;
    public Integer getId() {
    return id;
    }
    public void setId(Integer id) {
    this.id = id;
    }
    public int getAge() {
    return age;
    }
    public void setAge(int age) {
    this.age = age;
    System.out.println("setAge:----->"+this.age);
    }
    public String getFirstname() {
    return firstname;
    }
    public void setFirstname(String firstname) {
    this.firstname = firstname;
    System.out.println("setFirstName:----->"+this.firstname);
    }
    public String getLastname() {
    return lastname;
    }
    public void setLastname(String lastname) 
    {
    this.lastname = lastname;
    System.out.println("setLastName:----->"+this.lastname);
    }
    }
      

  8.   

    我也遇到这样的类似问题,就是在jsp页面无法显示整数类型,但是换成String类型就可以在页面上显示了.
      

  9.   

    LZ,加上getUser,,看看, struts2填充请求参数的时候会去先get一下的.!
    加上, 不行再说.!
      

  10.   


    加上getUser后正常了,问题解决。看来自己的基础还是不够扎实啊。
      

  11.   

    是这样的.  填充请求参数, 会调用get方法,如果为null,Struts2会自己给new一个. 所以这就是为什么我们在Struts2的action中的实体属性可以new,也可以不new的原因.!
    问题解决就好.!
      

  12.   

    为什么有时候不new一个对象会报错啊,new一个对象就对了