【问题标题】:Cannot create a session after the response has been committed....Why? [duplicate]提交响应后无法创建会话....为什么? [复制]
【发布时间】:2012-01-15 14:27:05
【问题描述】:
<?xml version='1.0' encoding='UTF-8' ?>

小面标题

            <f:facet name="header">Books And Authors....</f:facet>
            <h:panelGrid columns="2" rules="cols">



                <h:panelGrid id="pan1" columns="2">

                    <h:outputText value="Select Author"/>
                    <p:selectOneMenu value="#{bean.selectedAuthor}" converter="authorConverter">

                        <f:selectItems value="#{bean.authors}" var="author"
                                       itemLabel="#{author.name}" itemValue="#{author}"/>
                    </p:selectOneMenu>
                    <h:outputText value="Select Books"/>
                    <p:selectManyMenu value="#{bean.selectedBook}" converter="bookConverter">
                        <f:selectItems value="#{bean.books}" var="books"
                                       itemLabel="#{books.name}" itemValue="#{books}"/>
                    </p:selectManyMenu>
                    <p:commandButton value="Add" process="@form:pan1" update="@form:pan1" action="#{bean.add}" />
                </h:panelGrid>

                <h:panelGrid id="pan2" columns="2">
                    <h:outputText value="Enter Book name:"/>
                    <p:inputText value="#{bean.name}"/>

                    <p:commandButton value="Search" process="@form:pan2" update="@form:pan2" action="#{bean.search}"/>
                    <p:commandButton value="Inner Join" process="@form:pan2" update="@form:pan2" action="#{bean.innerJoin}"/>
                    <p:commandButton value="Outer Join" process="@form:pan2" update="@form:pan2" action="#{bean.outerJoin}"/>
                    <p:commandButton value="Fetch Join" process="@form:pan2" update="@form:pan2" action="#{bean.fetchJoin}"/>
                    <p:dataTable value="#{bean.results}" var="authors">

                        <p:column>
                            <f:facet name="header">Author Name</f:facet>
                            #{authors.name}
                        </p:column>
                        <p:column>
                            <f:facet name="header">Book Name</f:facet>
                            <p:dataTable value="#{authors.books}" var="book">
                                <p:column>
                                  #{book.name}
                                </p:column>
                            </p:dataTable>
                        </p:column>
                    </p:dataTable>
                </h:panelGrid>

            </h:panelGrid>
        </p:panel>
    </h:form>
</h:body>

警告:JSF1087:无法生成 Facelets 错误页面,因为响应已提交。 严重:javax.faces.FacesException:PWC3999:提交响应后无法创建会话

我该如何解决这个问题?

【问题讨论】:

    标签: jsf jsf-2 facelets


    【解决方案1】:

    为了创建会话,您(几乎总是)需要设置会话 cookie。当响应已经提交(即 HTTP 标头已经发送到客户端)时,这是不可能的。在这种情况下,Facelets 内部似乎需要一个会话。

    我该如何解决这个问题?

    在代码的前面创建会话。您不必输入任何会话属性,只需确保会话存在即可。

    【讨论】:

      猜你喜欢
      • 2012-06-12
      • 2011-07-29
      • 2012-06-06
      • 2013-05-29
      • 2021-09-24
      • 1970-01-01
      • 2014-12-08
      • 2013-12-02
      相关资源
      最近更新 更多