【问题标题】:Spring Web Flow - store request param across views(jsf pages)Spring Web Flow - 跨视图存储请求参数(jsf页面)
【发布时间】:2011-03-15 06:58:26
【问题描述】:

有 Spring Web Flow 的转换配置:

<transition on="getFiles">
    <evaluate expression="searchService.getFiles(flowScope.searchCriteria, requestParameters.fileId)"
     result="viewScope.file" result-type="dataModel"/>
</transition>

两种情况需要调用searchService.getFiles(flowScope.searchCriteria, requestParameters.fileId)方法:

1. 检索文件(发生在1.xhtml
2. 排序文件(发生在2.xhtml

问题是,在对文件进行排序(第 2 步)时,requestParameters.fileId 会丢失。

是否可以存储 fileId 参数交叉 1.xhtml2.xhtml 视图?

【问题讨论】:

    标签: jsf request store spring-webflow param


    【解决方案1】:

    不要通过 requestParameters 请求 fileId 属性。 requestParameters 对象基本上是请求属性。您可以观察到您将文件设置为 viewScope.file。这意味着您可以在视图中的任何位置相应地访问该文件。 viewScope.file.fileId 是否存在?

    第一次转换后请求丢失,另一种方法是您可以尝试将其设置到 flashScope 中。

    根据您的评论进行更新。请先尝试将其设置到 flash/viewScope 中。

    你可以这样做

    <transition on="getFiles">
        <set var="flashScope.fileId" value="requestParameters.fileId"/>
        <evaluate expression="searchService.getFiles(flowScope.searchCriteria, requestParameters.fileId)"
         result="viewScope.file" result-type="dataModel"/>
    </transition>
    

    【讨论】:

    • viewScope.file 是文件列表,id 没有连接到 requestParameters.fileId。所以我会尝试 flashScope。
    • 感谢版,再出一期——我的JSF版本是1.2,flashScope申请了吗?
    • Flashscope 是 spring-webflow-2 属性。如果无法访问 flashscope 可以在 flowScope 下管理(flowScope 跨越整个流程的生命周期)
    猜你喜欢
    • 2012-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-02
    • 2011-10-09
    • 1970-01-01
    • 2010-11-03
    相关资源
    最近更新 更多