我是JSF的新手,正在构建使用Facelets创建的应用程序。
这是我的模板
master.xhtml
<body id="body">
<form id="frmmaster">
<div id="pg-nav-bg">
<div class="wrapper clear">
<div class="footer clear">
<div class="footerContent">Help Des</div>
</div>
<div id="pg-nav">
<ul class="nav sf-js-enabled">
<li class="page_item" id="liHomr">
<a href="#" title="Home">Home</a>
</li>
<li class="page_item" id="liFreeSearch">
<a href="#" title="Free Search" >Free Search</a>
</li>
<li class="page_item" id="liMasterSearch">
<a href="#" title="Search">Search</a>
</li>
<li class="page_item" id="liAdvanceSearch">
<a href="#" title="Advanced Search">Advanced Search</a>
</li>
<li class="page_item" id="liCharts">
<a href="#" title="Charts" >Charts</a> <!--
</li>
</ul>
</div>
</div>
</div>
<div class="wrapper clear">
<div class="Welcome ">
<div class="welcome">
Welcome! <strong>Searcher</strong>
|
<strong >
[ <a title="Change Password" href="" style="color: #FFFFFF;">Change Password</a> ]
[ <h:commandLink id="lbSignOut" value="Sign Out" onclick="lbSignOut_Click" styleClass="color: #FFFFFF;"></h:commandLink> ]
</strong>
</div>
<br class="clear" />
<div>
<label id="lblMessage"></label>
</div>
</div>
</div>
<div class="wrapper big" >
<div id="header" class="clear">
<img src="../../images/logo.png" class="image" alt=""/>
<div class="logo">
<div id="title" >M - 11</div>
<div id="version">V 0.8</div>
<div id="description">Helps in finding the right person</div>
</div>
</div>
<!-- Here I included facelet -->
<ui:include src="../SearchPages/MasterSearch.xhtml"/>
</div>
</form>
</body>
</html>
MasterSearch.xhtml
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core">
<div id="sidebar">
<ul>
<li class="widget">
<table>
<h:form>
<tr><td>Service Number</td>
<td>
<h:inputText id="txtMasterServiceNumber" styleClass="text-box" value="#{masterSearch.serviceNumber}" requiredMessage="enter value">
<f:validateRegex pattern="[A-Za-z0-9]{1,40}"/>
</h:inputText>
<h:message for="txtMasterServiceNumber" />
</td>
</tr>
<tr>
<td>Rank</td>
<td><h:selectOneMenu id="cboMasterRank" value="#{masterSearch.rank}" styleClass="select-field">
<f:selectItem itemLabel="--Please Select--" itemValue="medium" />
<f:selectItem itemLabel="A" itemValue="medium" />
<f:selectItem itemLabel="B" itemValue="basic" />
<f:selectItem itemLabel="C" itemValue="premium" />
</h:selectOneMenu></td>
</tr>
<tr>
<td>Full Name</td>
<td>
<h:inputText id="txtMasterFullName" styleClass="text-box" value="#{masterSearch.fullName}" validatorMessage="Please enter a valid name.">
<f:validateRegex pattern="^([A-Za-z])*$" />
<h:message for="txtMasterFullName" styleClass="Error" /></h:inputText>
</td>
</tr>
<tr>
<td>CNIC Number</td>
<td><h:inputText id="txtMasterCNIC" value="#{masterSearch.CNICNumber}" styleClass="text-box">
<f:validateRegex pattern="^([A-Za-z])*$" />
<h:message for="txtMasterFullName" styleClass="Error" />
</h:inputText>
</td>
</tr>
<tr>
<td>Phone No.</td>
<td><h:inputText id="txtMasterPhoneNo" value="#{masterSearch.phoneNumber}" styleClass="text-box"></h:inputText>
</td>
</tr>
<tr>
<td>Email Address</td>
<td><h:inputText id="txtMasterEmail" value="#{masterSearch.emailAddress}" styleClass="text-box"></h:inputText>
</td>
</tr>
<tr>
<td colspan="2" align="right">
<h:commandButton id="btnMasterSearch" type="submit" value="Search" styleClass="submitButton" action="#{masterSearch.findPerson}"></h:commandButton>
</td>
</tr>
</h:form>
</table>
</li>
</ul>
<img src="../../images/loader.gif" alt="" style="vertical-align:middle;margin:2px;"/>Loading...
</div>
</div>
<script src="../../Scripts/searchexternal.js" type="text/javascript"></script>
MasterSearch.java这是一个bean
public class MasterSearch {
long serviceNumber;
String rank;
String fullName;
String CNICNumber;
String phoneNumber;
String emailAddress;
public long getServiceNumber() {
return serviceNumber;
}
public void setServiceNumber(long serviceNumber) {
this.serviceNumber = serviceNumber;
}
public String getRank() {
return rank;
}
public void setRank(String rank) {
this.rank = rank;
}
public String getFullName() {
return fullName;
}
public void setFullName(String fullName) {
this.fullName = fullName;
}
public String getCNICNumber() {
return CNICNumber;
}
public void setCNICNumber(String cNICNumber) {
CNICNumber = cNICNumber;
}
public String getPhoneNumber() {
return phoneNumber;
}
public void setPhoneNumber(String phoneNumber) {
this.phoneNumber = phoneNumber;
}
public String getEmailAddress() {
return emailAddress;
}
public void setEmailAddress(String emailAddress) {
this.emailAddress = emailAddress;
}
public String findPerson(){
return "personfound";
}
}
faces-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<faces-config
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"
version="2.0">
<application>
<el-resolver>
org.springframework.web.jsf.el.SpringBeanFacesELResolver
</el-resolver>
</application>
<managed-bean>
<managed-bean-name>masterSearch</managed-bean-name>
<managed-bean-class>
MasterSearch
</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
<managed-bean>
<managed-bean-name>masterResult</managed-bean-name>
<managed-bean-class>
com.delta.resultbeans.MasterSearchResult
</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
<navigation-rule>
<description>Navigation from the MasterSearch</description>
<from-view-id>/WebPages/SearchPages/MasterSearch.xhtml</from-view-id>
<navigation-case>
<from-outcome>personfound</from-outcome>
<to-view-id>/WebPages/SearchPages/found.jsp</to-view-id>
</navigation-case>
<navigation-case>
<from-outcome>personnotfound</from-outcome>
<to-view-id>/notfound.jsp</to-view-id>
</navigation-case>
</navigation-rule>
</faces-config>
现在,当我运行此代码(实际上是masterp.xhtml)时,它显示出完美的输出并加载了Accuratley,但它在控制台中引发了异常,即
SEVERE: Error Rendering View[/WebPages/MasterPage/master.xhtml]
java.lang.IllegalStateException: PWC3999: Cannot create a session after the response has been committed
at org.apache.catalina.connector.Request.doGetSession(Request.java:2885)
at org.apache.catalina.connector.Request.getSession(Request.java:2582)
at org.apache.catalina.connector.RequestFacade.getSession(RequestFacade.java:920)
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:131)
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.StandardWrapper.service(StandardWrapper.java:1542)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:281)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:161)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:331)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231)
at com.sun.enterprise.v3.services.impl.ContainerMapper$AdapterCallable.call(ContainerMapper.java:317)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:195)
at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:849)
at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:746)
at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1045)
at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:228)
at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
at java.lang.Thread.run(Thread.java:722)
INFO: Exception when handling error trying to reset the response.
java.lang.IllegalStateException: PWC3999: Cannot create a session after the response has been committed
at org.apache.catalina.connector.Request.doGetSession(Request.java:2885)
at org.apache.catalina.connector.Request.getSession(Request.java:2582)
at org.apache.catalina.connector.RequestFacade.getSession(RequestFacade.java:920)
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:131)
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.StandardWrapper.service(StandardWrapper.java:1542)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:281)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:161)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:331)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231)
at com.sun.enterprise.v3.services.impl.ContainerMapper$AdapterCallable.call(ContainerMapper.java:317)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:195)
at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:849)
at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:746)
at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1045)
at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:228)
at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
at java.lang.Thread.run(Thread.java:722)
WARNING: StandardWrapperValve[Faces Servlet]: PWC1406: Servlet.service() for servlet Faces Servlet threw exception
java.lang.IllegalStateException: PWC3999: Cannot create a session after the response has been committed
at org.apache.catalina.connector.Request.doGetSession(Request.java:2885)
at org.apache.catalina.connector.Request.getSession(Request.java:2582)
at org.apache.catalina.connector.RequestFacade.getSession(RequestFacade.java:920)
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:131)
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.StandardWrapper.service(StandardWrapper.java:1542)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:281)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:161)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:331)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231)
at com.sun.enterprise.v3.services.impl.ContainerMapper$AdapterCallable.call(ContainerMapper.java:317)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:195)
at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:849)
at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:746)
at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1045)
at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:228)
at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
at java.lang.Thread.run(Thread.java:722)
而且我认为由于这个原因,它没有提交我按钮的操作
<h:commandButton id="btnMasterSearch" type="submit" value="Search"styleClass="submitButton" action="#{masterSearch.findPerson}">
目前在MasterSearch.xhtml
。我对SO发现,人们有这样的问题,但我无法找到和理解一个好的解决方案。
请帮助谢谢
这是Mojarra中的一个已知错误。据报道,它是问题2215和2277,自Mojarra
2.1.8起已修复。因此,如果至少升级到2.1.8,则此问题应消失。
造成此问题的原因可以解释如下:Mojarra试图尽可能推迟会话的创建。该会话只能在 真正
需要的时候创建。其中,当<h:form>
需要编写JSF视图状态时,通常在呈现close的过程中发生</h:form>
。但是,在相对较大的页面上,其中关闭</h:form>
出现
在
2KB的书面HTML之后,因此创建会话为时已晚。要创建会话,服务器即需要设置一个cookie。但是,要设置cookie,不应提交响应(即cookie需要放入响应头中)。默认情况下,服务器配置为每2KB的已编写HTML刷新响应。
如前所述,此问题自Mojarra 2.1.8起已得到修复。您可以在此处下载最新版本。
我知道这里已经讨论过至少一百万次了,但是每个servlet在调用forward()之前都会重定向或刷新输出。我有同样的问题,但我没有做任何与输出。我的servlet只接受请求参数并提交到数据库,并在请求上设置一个属性。然后,它将请求转发给jsp,jsp显示属性。我在Tomcat7上使用Servlet3.0。下面是我的servlet doPost方法,后面是转发到的jsp: JSP: 我相信我可能错
我用thymeleaf视图构建了一个Spring MVC应用程序,遇到了以下问题。我有一个页面,应该处理一个表单,并创建一个新的实体,以持久化在数据库中。在我的controller类中,我有两个方法。首先,呈现页面的@GetMapping: 由TemplateProcessingException指示的第41行是带有form标记的行。我几乎没有前端开发的经验,所以请对我有耐心。我想我必须在这里做一
在我的应用程序中执行一些操作时,我得到了 Java . lang . illegalstateexception无法调用sendError() 当我再次重新加载页面时,它会正常工作一段时间,但一段时间后它再次显示相同的异常。我如何克服这个异常? 以下是例外: 支柱.xml
我使用过滤器来确定请求的页面是否具有有效的会话。 这是我的密码<代码>网络。xml: 过滤器类别: 我有一个登录页面,用于检查用户是否有效。如果用户有效,则将控制转移到此servlet。 这在没有过滤器的情况下可以工作,但是当我将控件转发到“//showuserImages.jsp”时,过滤器会显示一个错误。
你好,Hibernate和Jackson有问题。有两个POJO 为Spring Security集成而设计的用户及其角色。 还有一个控制器,通过Jackson从用户Json生成。With方法 当此方法返回不带null字段的用户时,将抛出: 当我添加@OneTo很多时,这个问题就出现了(mep dBy="user", cascade=CascadeType. ALL, fetch=FetchType
我试图创建一个api的商店以下属性:StoreId,名称,位置,电话,产品列表(ProductId,对象,价格,股票),产品列表的大小 问题是,当存储区与列表中的项目不一致时,它会以以下方式响应: 但是,如果所有的商店都没有项目,就没有问题,但是如果所有的商店都没有项目,api就没用了。