【问题标题】:Could form values be preserved without using session scope?可以在不使用会话范围的情况下保留表单值吗?
【发布时间】:2011-02-07 14:09:32
【问题描述】:

我有两页,第一页有数据表和一些 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.

【问题讨论】:

    标签: session jsf icefaces


    【解决方案1】:

    您可以使用 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 中使用视图范围的示例。

    【讨论】:

    • @user339637 感谢您的回复,实际上我正在使用 JSF 1.1 和 Icefaces 1.8.0。我尝试使用 <t:saveState id="saveCalcForm" value="#{bean}" />,但由于某种原因,当我返回第一页时状态没有保存。感谢任何帮助。
    • 我已经建议 OP 使用t:saveState,但不知怎的,它与 IceFaces 的配合不太好,所以我删除了答案并在问题中添加了icefaces 标签。跨度>
    • 我已将我的应用程序的一些日志条目添加为更新 1
    • 是否有任何替代
    • 使用 h:inputHidden 导航返回或使用 requestMap 时如何检索值?
    【解决方案2】:

    使用 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 的信息

    问候

    【讨论】:

      猜你喜欢
      • 2023-03-14
      • 1970-01-01
      • 2010-10-05
      • 1970-01-01
      • 1970-01-01
      • 2017-05-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-23
      相关资源
      最近更新 更多