datatable
primefaces 쇼케이스에 표시된 것과 동일한 페이지를 개발하고 있습니다.하지만 그것을 작동하지 않습니다. 내가 하나 또는 두 개의 행이있는 페이지를 실행할 때 그것은 작동하지만 실행하면 두 개 이상의 행이 서버에있는 페이지가 오류를 보여줍니다 [내가 datatable
을 editable
으로 설정하면 작동하지 않습니다.] 대신 request or view
빈을 설정할 때 문제가 해결되었습니다. 질문이 요청 또는보기 범위에서 작동하지 않는 이유는 무엇입니까?Primefaces 이상한 오류 datatable 함께
출처 :
페이지 :
<p:dataTable var="club" value="#{currentClubItems.clubItems}" id="clubs"
>
<p:ajax event="rowEdit" listener="#{currentClubItems.onEdit}" update=":form:messages"/>
<p:column headerText="Main Category" style="width:15%">
<p:cellEditor>
<f:facet name="output">
<h:outputText value="#{club.mainCategory}"/>
</f:facet>
<f:facet name="input">
<p:selectOneMenu value="#{club.mainCategory}" editable="true">
<f:selectItems value="#{currentClubItems.categories}"
var="ct"
itemLabel="#{ct}"
itemValue="#{ct}"/>
</p:selectOneMenu>
</f:facet>
</p:cellEditor>
</p:column>
<!-- other coloms-->
<p:column style="width:5%">
<p:rowEditor/>
</p:column>
</p:dataTable>
콩 :
@ViewScoped
@ManagedBean(name = "currentClubItems")
public class CLMItems implements Serializable {
private List<ClubItem> clubItems;
public CLMItems(){
clubItems=new ArrayList<ClubItem>();
ClubItem clubItem=new ClubItem();
clubItem.setId("1");
clubItem.setMainCategory("category");
clubItem.setSubCategory("sub category");
clubItem.setMerchant("Merchant");
clubItem.setOffer("Content goes here..");
//add more items......
}
//getters and setters
}
ClubItem :
public class ClubItem implements Serializable {
private String id;
private String mainCategory;
private String subCategory;
private String merchant;
private String offer;
//getters and setters
}
오류 :
java.lang.IllegalStateException: Cannot create a session after the response has been committed
at org.apache.catalina.connector.Request.doGetSession(Request.java:2705)
at org.apache.catalina.connector.Request.getSession(Request.java:2231)
at org.apache.catalina.connector.RequestFacade.getSession(RequestFacade.java:899)
at com.sun.faces.context.ExternalContextImpl.getSession(ExternalContextImpl.java:155)
at com.sun.faces.renderkit.ServerSideStateHelper.writeState(ServerSideStateHelper.java:175)
at com.sun.faces.renderkit.ResponseStateManagerImpl.writeState(ResponseStateManagerImpl.java:122)
at com.sun.faces.application.StateManagerImpl.writeState(StateManagerImpl.java:166)
at com.sun.faces.application.view.WriteBehindStateWriter.flushToWriter(WriteBehindStateWriter.java:225)
at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:419)
at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:125)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:121)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:594)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:498)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:562)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:394)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:243)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:188)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:166)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
at java.lang.Thread.run(Thread.java:619)
실제 코드를 사용하면 실제 문제가 발생하기 쉽지 않습니다. –
Ok 코드가 최소화되었습니다. – sampathpremarathna
가능한 중복 [IllegalStateException : 응답이 커밋 된 후 세션을 만들 수 없음] (http://stackoverflow.com/questions/8072311/illegalstateexception-cannot-create-a-session-after- 응답이있다 - commi) – BalusC