相关疑难解决方法(0)

Flash范围是否没有竞争条件?

我发现JSF 2.0 Flash范围是通过cookie在Mojarra 2.x中实现的.似乎发生的情况是,当使用Flash从视图A导航到视图B时,JSF会发送重定向响应.这是包含set-cookie标头的相同响应.

由于cookie是浏览器的全局,我想知道这会导致竞争条件的可能性.由于在重定向响应期间设置了cookie,我试图找出HTTP规范是否以某种方式保证浏览器响应的请求始终是第一个使用此cookie的请求.

但是,一般情况下,如果第一个请求以某种方式停止(因为Internet决定将该特定请求路由到世界各地),则可能仍然存在问题,然后来自另一个选项卡的第二个请求首先到达服务器.

对于两页之间的闪存范围而言,使用cookie不是一个可怕的想法,或者我是否忽略了某些东西并且它是否非常安全?

java cookies redirect jsf-2 flash-scope

8
推荐指数
1
解决办法
585
查看次数

JSF Flash Scope 记住太多消息

我的应用程序中有一个简单的流程 - 如果您在一个表单上填写并按保存(如果一切顺利),您将被重定向到带有列表的第二个视图。现在我想添加一条消息,说“您成功添加了一个对象”,但由于我使用的是我记得的重定向,因此我需要使用 Flash 范围。所以我做到了。问题是,在第一次“保存”期间,它正确地只显示了 1 条消息,但是当我导航回表单并点击“保存”时,它会向我显示当前消息和旧消息!更奇怪的是,当(第三次)我返回表单并点击“保存”时,我再次只收到 1 条消息(依此类推 1-2-1-2-1-2 等......)。我做错了什么还是jsf中的错误?我的意思是我正在调用相同的方法并得到不同的结果......

我正在使用 primefaces 和最新的 mojarr:

jsf-api-2.1.1-b04
jsf-impl-2.1.1-b04
primefaces-2.2.1

这是代码(至少是最相关的部分):

保存表格.xhtml:

    <div id="content-box" class="content-box">
        <p:panel id="content-panel" header="Dane raportu"
            styleClass="content-panel">
            <div class="content-box">
                <h:form prependId="false">
                    <h:panelGrid id="grid" columns="2" styleClass="content-panel">

                        <!-- some inputs and labels -->

                        <p:commandButton value="#{msg['thesis.save.button']}"
                            action="#{thesisBean.saveThesis}" />    
                    </h:panelGrid>
                </h:form>
            </div>
        </p:panel>
    </div>
Run Code Online (Sandbox Code Playgroud)

保存论文方法:

public String saveThesis() {
            //this creates a Hibernate entity and saves it to the DB
    thesisService.addThesis(createThesisEntity());

    FacesContext context = FacesContext.getCurrentInstance();
    context.getExternalContext().getFlash().setKeepMessages(true);
    ResourceBundle bundle = context.getApplication().getResourceBundle(
            context, "msg");

    context.addMessage(null, …
Run Code Online (Sandbox Code Playgroud)

jsf primefaces jsf-2 flash-scope

5
推荐指数
1
解决办法
3536
查看次数

标签 统计

flash-scope ×2

jsf-2 ×2

cookies ×1

java ×1

jsf ×1

primefaces ×1

redirect ×1