哦,问下,为什么每次jsf中页面 ,点击一个按钮执行action里面的bean的方法的时候,总是先要进去bean的无参构造函数里面去呢?按照道理来说,到了后台先那重新构造之后,不是bean里面所有的数据都clear了嘛,我在debug的时候,bean是null,但是为什么后来执行到方法里面的时候,页面我输入的值又在bean里出现了呢?
我点击按钮到无参构造函数里面 这个时间段,那些值跑哪去了呢?而在执行无参构造函数之后到方法里面这一个过程 这些值是怎么冒出来的呢?那就是你点击按钮的时候,先执行到后台初始化bean,然后跑出来到页面绑定这些输入的值,再去执行方法里面?
页面是一开始就到了后台,再也没有出来过啊?

解决方案 »

  1.   

    jsf的bean机制,有这个特性是到了页面绑定的时候才开始赋值(set属性值)。而且就是页面上bean绑定了多少值(不管你显示与否都算),执行方法的时候传到后台,bean里就是这些值。跟第一次去数据库取的bean的值,没有任何直接的关系。
      

  2.   

    你所说的情况一定是 bean 设置为request的时候的事情,如果设置为session,就不会出现这个情况啦!
      

  3.   

    也许楼上说的对,建议楼主去查查jsf生命周期的过程.
    其中有关于什么时候设置bean的属性.