可以在不使用会话范围的情况下保留表单值?

时间:2011-02-07 14:09:33

标签: session jsf icefaces

我有两个页面,第一页有数据表和一些LOV。

当我从第一页导航到第二页时,当我从第二页导航回第一页而不使用会话范围时,是否可以保留LOV和数据表分页中的值?

如果是这样,我怎么能这样做?

更新1

运行我的应用程序时,我可以看到以下日志。可能是我错过了一些明显的东西!!

4234 [ApplicationServerThread-0] INFO  org.apache.myfaces.shared_tomahawk.config.MyfacesConfig  - No context init parameter 'org.apache.myfaces.PRETTY_HTML' found, using default value true
4234 [ApplicationServerThread-0] INFO  org.apache.myfaces.shared_tomahawk.config.MyfacesConfig  - No context init parameter 'org.apache.myfaces.ALLOW_JAVASCRIPT' found, using default value true
4234 [ApplicationServerThread-0] INFO  org.apache.myfaces.shared_tomahawk.config.MyfacesConfig  - No context init parameter 'org.apache.myfaces.READONLY_AS_DISABLED_FOR_SELECTS' found, using default value true
4234 [ApplicationServerThread-0] INFO  org.apache.myfaces.shared_tomahawk.config.MyfacesConfig  - No context init parameter 'org.apache.myfaces.RENDER_VIEWSTATE_ID' found, using default value true
4234 [ApplicationServerThread-0] INFO  org.apache.myfaces.shared_tomahawk.config.MyfacesConfig  - No context init parameter 'org.apache.myfaces.STRICT_XHTML_LINKS' found, using default value true
4234 [ApplicationServerThread-0] INFO  org.apache.myfaces.shared_tomahawk.config.MyfacesConfig  - No context init parameter 'org.apache.myfaces.CONFIG_REFRESH_PERIOD' found, using default value 2
4234 [ApplicationServerThread-0] INFO  org.apache.myfaces.shared_tomahawk.config.MyfacesConfig  - No context init parameter 'org.apache.myfaces.DETECT_JAVASCRIPT' found, using default value false
4234 [ApplicationServerThread-0] INFO  org.apache.myfaces.shared_tomahawk.config.MyfacesConfig  - No context init parameter 'org.apache.myfaces.AUTO_SCROLL' found, using default value false
4234 [ApplicationServerThread-0] INFO  org.apache.myfaces.shared_tomahawk.config.MyfacesConfig  - No context init parameter 'org.apache.myfaces.ADD_RESOURCE_CLASS' found, using default value org.apache.myfaces.renderkit.html.util.DefaultAddResource
4234 [ApplicationServerThread-0] INFO  org.apache.myfaces.shared_tomahawk.config.MyfacesConfig  - No context init parameter 'org.apache.myfaces.RESOURCE_VIRTUAL_PATH' found, using default value /faces/myFacesExtensionResource
4234 [ApplicationServerThread-0] INFO  org.apache.myfaces.shared_tomahawk.config.MyfacesConfig  - No context init parameter 'org.apache.myfaces.CHECK_EXTENSIONS_FILTER' found, using default value true
4234 [ApplicationServerThread-0] INFO  org.apache.myfaces.shared_tomahawk.config.MyfacesConfig  - Starting up Tomahawk on the RI-JSF-Implementation.

2 个答案:

答案 0 :(得分:0)

您可以使用MyFaces Tomahawk的<t:saveState>标签在第1页中保存所谓的LOV。

如果使用JSF2,似乎可以尝试查看范围功能。

  

视图范围是什么?查看范围   已经在JSF 2.0和   它是特别有用的   在入住期间编辑一些物体   同一页面。换句话说就是   更宽广的东西然后请求但是   比这个范围小,然后会话   如果您导航到其他人,则终止   页。

您可以参考http://www.mastertheboss.com/java-ee-16-articles/258-jsf-20-tutorial-on-jboss-as-part-1.html获取有关如何在JSF 2中使用视图范围的示例。

答案 1 :(得分:0)

使用FullRedirectTrackPolicy解决了导航返回(请求范围)后保留表单值的问题。

在web.xml中添加以下内容,并将tomahawk-sandbox.jar添加到您的项目中。

<context-param>
        <param-name>org.apache.myfaces.redirectTracker.POLICY</param-name>
        <param-value>org.apache.myfaces.custom.redirectTracker.policy.FullRedirectTrackPolicy</param-value>
    </context-param>

有更多信息,请here

如果没有faces-config.xml中的重定向规则,我无法解决,有一些错误。

感谢@BalusC提供有关t:saveState和@ user339637

的信息

此致