<?xml version='1.0' encoding='UTF-8' ?>
Facelet标题
<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:提交响应后无法创建会话
我该如何解决这个问题?
答案 0 :(得分:3)
为了创建会话,您(几乎总是)需要设置会话cookie。当响应已经提交时(即HTTP头已经发送到客户端),这是不可能的。在这种情况下,似乎Facelets内部需要一个会话。
我该如何解决这个问题?
在代码中创建一个会话。您不必输入任何会话属性,只需确保会话存在。