当第一次打开一个JSF页面的时候,JSF会自动创建一个跟它相关的Bean(Scope为Session)的实例,但是在Session失效前,第二次打开这个页面时系统还会使用原来的那个Bean,现在我想每次打开这个页面的时候都初始化一下这个Bean(即,重新调用它的构造方法),但是又不想按照jsp的做法用标签这类东西写在页面里。我知道把Scope设置成Request会有类似的效果,但是它不能满足我的要求。因为我在这个页面中要输入些东西,然后在另一个页面显示我所输入的信息,所以用Request就不能实现这个功能了。不知道我应该怎么做? 实际上就是这种效果 how 

解决方案 »

  1.   

    想得太复杂了,jsf的bean不需要你初始化,只要一调用它会自动初始化.
    如果你想处理些什么,直接在get方法中写入即可,谁在页面中先出现,就先调用谁的get方法.所以你可以把初始化的方法在最早出现的get方法中调用即可.
      

  2.   

    java2000_net_test 这个人怎么老是在别人发的贴子后加上‘注释’呢???
      

  3.   

    实际上是java2000_net干的,他是斑竹!
      

  4.   


    哥们儿还没理解我的意思  比如说一个bean(这个bean的scope是Session) 有一个List 然后页面是showList.jsf
    当你第一次请求showList.jsf的时候 页面会根据标签请求到后台bean,然后bean里面进行操作(比如说取值填入List)
    然后在showList.jsf显示你的值   加入showLIst页面有一个定制查询“根据ID查询” 自然这时候showList.jsf就显示这个定制查询的结果然后等你再重新进入showList的时候  此页面显示的还是定制查询的结果 而不是全部的结果 因为bean是Session的我就是想他这时也显示全部的结果  却不让改Scope   so  so
      

  5.   

    估计你使用eclipse作开发,你看看netbeans产生页面的结构就能够明白一些东西,其实你的问题是没有合理的组织你的信息,你设计jsf应用的思想还受到jsp的限制,抛开jsp用jsf的思想去做,将你要传递出去的信息提取出来作为独立的class放到session下,不要传递的整理出来作为独立的class放到request下,通过这种方式解决,我刚开始用jsf时也有你的困惑,request 与 request之间传递可以通过设置parameter的方式,也就是说如果你要传递的信息比较少时不需要单独的class,只需要通过param就可以实现
      

  6.   

    作之前先规划好你的信息哪些是在session级别要保留信息的,哪些是request级别要更新的,规划好了就不会有这些问题了。