2016-12-30 60 views
-2

標識符[#]不是EL規範(標識符:: = Java語言標識符)第1.19節所要求的有效Java標識符。該檢查可通過設置系統屬性來禁用無法理解最新錯誤

org.apache.el.parser.SKIP_IDENTIFIER_CHECK to true. 

-im使用tomcat 8服務器。

表單頁面:

<?xml version="1.0" encoding="ISO-8859-1" ?> 
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
    <html xmlns="http://www.w3.org/1999/xhtml" 
    xmlns:h = "http://xmlns.jcp.org/jsf/html" 
    xmlns:f = "http://xmlns.jcp.org/jsf/core" > 
    <h:head> 
    <title>Health Plan</title> 
    </h:head> 
    <h:body> 
    <h:form> 
    <h1>Health Care Sign up</h1> 

    <!-- 
    Employee Name: <h:inputText value = "#{employee.name}" id="name" /> <br/> 

    Empolyee ID: <h:inputText value = "#{employee.id}" /> <br/> 
    Health Plan Name: 
    <h:selectOneMenu value="#{employee.healthPlanS}" > 
    <f:selectItems value="#{healthPlanOptions.heathPlanArrayList}" var="healthPlan" itemLabel="#{healthPlan.planName}" itemValue="# {healthPlan.planName}" /> 
    </h:selectOneMenu> 
    --> 

    <br/> 

    <h:commandButton value= "submit" action="ConfirmRegistration" /> 
    </h:form> 
    </h:body> 
    </html> 

confirmregistration

<?xml version="1.0" encoding="ISO-8859-1" ?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" 
xmlns:h ="http://xmlns.jcp.org/jsf/html" 
> 
<h:head> 
<title>Confirmation</title> 
</h:head> 
<h:body> 
<ul> 
<!-- <li>Employee Name: #{ employee.name } </li> 
<li>Employee ID: #{ employee.id } </li> 
<li>Health Plan Selected: #{employee.healthPlanS} </li> 
<li>Monthly premium: #{healthPlanOption.price(#{healthPlanS})}</li> 
<li>contact number :4697654</li> --> 
</ul> 
</h:body> 
</html> 

兩個文件保存AR使用.xhtml

豆:

import javax.faces.bean.ManagedBean; 

@ManagedBean 
public class Employee { 
    private String name, id, healthPlanS; 

    public String getName() { 
     return name; 
    } 

    public void setName(String name) { 
     this.name = name; 
    } 

    public String getId() { 
     return id; 
    } 

    public void setId(String id) { 
     this.id = id; 
    } 

    public String getHealthPlanS() { 
     return healthPlanS; 
    } 

    public void setHealthPlanS(String healthPlanS) { 
     this.healthPlanS = healthPlanS; 
    } 

} 

HealthPlan:

import javax.faces.bean.ManagedBean; 

@ManagedBean 
public class HealthPlan { 

    private String planName, planPrice; 

    public HealthPlan() { 
    } 

    public HealthPlan(String name, String price) { 
     this.planName = name; 
     this.planPrice = price; 

    } 

    public String getPlanName() { 
     return planName; 
    } 

    public void setPlanName(String planName) { 
     this.planName = planName; 
    } 

    public String getPlanPrice() { 
     return planPrice; 
    } 

    public void setPlanPrice(String planPrice) { 
     this.planPrice = planPrice; 
    } 

} 

HealthPlanOption:

import java.util.ArrayList; 

import javax.faces.bean.ManagedBean; 

@ManagedBean 
public class HealthPlanOptions { 

    private ArrayList<HealthPlan> heathPlanArrayList; 

    public HealthPlanOptions() { 
     heathPlanArrayList = new ArrayList<HealthPlan>(); 

     heathPlanArrayList.add(new HealthPlan("Heath Care", "1555.5$")); 
     heathPlanArrayList.add(new HealthPlan("Heath Care 2", "1959.10$")); 

    } 

    public ArrayList<HealthPlan> getHeathPlanArrayList() { 
     return heathPlanArrayList; 
    } 

    public void setHeathPlanArrayList(ArrayList<HealthPlan> heathPlanArrayList) { 
     this.heathPlanArrayList = heathPlanArrayList; 
    } 


} 

注:

,因爲它是(有註釋)的代碼提供了以下錯誤:

重度:Servlet的。 servlet [Faces Servlet]與path [/ jsf_2]上下文中的service()引發異常[[]標識符[#]不是所需的有效Java標識符通過EL規範的第1.19節(Identifier :: = Java語言標識符)。可以通過將系統屬性org.apache.el.parser.SKIP_IDENTIFIER_CHECK設置爲true來禁用此檢查。]根本原因 javax.el.E​​LException:標識符[#]不是根據第1.19節所要求的有效Java標識符EL規範(Identifier :: = Java語言標識符)。可以通過將系統屬性org.apache.el.parser.SKIP_IDENTIFIER_CHECK設置爲true來禁用此檢查。 在org.apache.el.parser.AstIdentifier.setImage(AstIdentifier.java:177) 在org.apache.el.parser.ELParser.Identifier(ELParser.java:1816) 在org.apache.el.parser。 ELParser.NonLiteral(ELParser.java:1548) at org.apache.el.parser.ELParser.ValuePrefix(ELParser.java:1369) at org.apache.el.parser.ELParser.Value(ELParser.java:1316) at org.apache.el.parser.ELParser.Unary(ELParser.java:1298) at org.apache.el.parser.ELParser.Multiplication(ELParser.java:1060) at org.apache.el.parser。 ELParser.Math(ELParser.java:980) at org.apache.el.parser.ELParser.Concatenation(ELParser.java:936) at org.apache.el.parser.ELParser.Compare(ELParser.java:747) 在o rg.apache.el.parser.ELParser.Equality(ELParser.java:641) at org.apache.el.parser.ELParser.And(ELParser.java:585) at org.apache.el.parser.ELParser。或(ELParser.java:529) at org.apache.el.parser.ELParser.Choice(ELParser.java:486) at org.apache.el.parser.ELParser.Assignment(ELParser.java:243) at org.apache.el.parser.ELParser.Semicolon(ELParser.java:182) at org.apache.el.parser.ELParser.Expression(ELParser.java:175) at org.apache.el.parser.ELParser。 MethodParameters(ELParser.java:1486) at org.apache.el.parser.ELParser.ValueSuffix(ELParser.java:1397) at org.apache.el.parser.ELParser.Value(ELParser。java:1328) at org.apache.el.parser.ELParser.Unary(ELParser.java:1298) at org.apache.el.parser.ELParser.Multiplication(ELParser.java:1060) at org.apache。 el.parser.ELParser.Math(ELParser.java:980) at org.apache.el.parser.ELParser.Concatenation(ELParser.java:936) at org.apache.el.parser.ELParser.Compare(ELParser。 java:747) at org.apache.el.parser.ELParser.Equality(ELParser.java:641) at org.apache.el.parser.ELParser.And(ELParser.java:585) at org.apache。 el.parser.ELParser.Or(ELParser.java:529) at org.apache.el.parser.ELParser.Choice(ELParser.java:486) at org.apache.el.parser.ELParser.Assignment(ELParser。 java:243) at org.apache.el.parse r.ELParser.Semicolon(ELParser.java:182) at org.apache.el.parser.ELParser.Expression(ELParser.java:175) at org.apache.el.parser.ELParser.DeferredExpression(ELParser.java: 113) at org.apache.el.parser.ELParser.CompositeExpression(ELParser.java:41) at org.apache.el.lang.ExpressionBuilder.createNodeInternal(ExpressionBuilder.java:111) at org.apache.el。 lang.ExpressionBuilder.build(ExpressionBuilder.java:168) at org.apache.el.lang.ExpressionBuilder.createValueExpression(ExpressionBuilder.java:232) at org.apache.el.E​​xpressionFactoryImpl.createValueExpression(ExpressionFactoryImpl.java:67) at com.sun.faces.facelets.el.E​​LText $ ELTextVariable.apply(ELText.java:203) at com.sun.faces.facelets.el.E​​LText $ ELTex tComposite.apply(ELText.java:184) at com.sun.faces.facelets.compiler.CommentInstruction.apply(CommentInstruction.java:81) at com.sun.faces.facelets.compiler.UIInstructionHandler.apply(UIInstructionHandler。的java:141) 在javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:137) 在com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:190) 在javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:120) at com.sun.faces.facelets.compiler上的javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:95) 。 NamespaceHandler.apply(NamespaceHandler.java:93) at com.sun.faces.facelets.comp iler.EncodingHandler.apply(EncodingHandler.java:87) at com.sun.faces.facelets.impl.DefaultFacelet.apply(DefaultFacelet.java:161) at com.sun.faces.application.view.FaceletViewHandlingStrategy.buildView( FaceletViewHandlingStrategy.java:972) 在com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:99) 在com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) 在COM。 (ApplicationFilterChain。 java:292) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) 在org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240) 在org.apache.catalina。 core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java: 106) 在org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502) 在org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141) 在org.apache.catalina。 valves.ErrorReportValve.invoke(ErrorReportValve.java:79) at org.apache.catalina.valves。AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616) 在org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88) 在org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:528) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1100) at org.apache.coyote.AbstractProtocol $ AbstractConnectionHandler.process(AbstractProtocol.java:687) at org.apache.tomcat.util。 net.NioEndpoint $ SocketProcessor.doRun(NioEndpoint.java:1520) at org.apache.tomcat.util.net.NioEndpoint $ SocketProcessor.run(NioEndpoint.java:1476) at java.util.concurrent.ThreadPoolExecutor.runWorker(未知源) at java.util.concurrent.ThreadPoolExecutor $ Worker.run(Unknown Source) 在org.apache.tomcat.util.threads.TaskThread $ WrappingRunnable.run(TaskThread.java:61) 在java.lang.Thread.run(來源不明)

+0

您正在使用哪個服務器? – vinod

+0

http://stackoverflow.com/questions/15900044/expression-language-skip-identifier-check-in-tomcat-7可能會有幫助.. – vinod

+0

請**做郵編**。請參見[問],特別是[mcve]部分。有一個原因,即使你認爲你的代碼中沒有任何與此相關的東西。可能有一些意想不到的(對你) – Kukeltje

回答

0

哦OKI現在的工作。 首先我有

<li>Monthly premium: #{healthPlanOption.price(#{healthPlanS})}</li> 

導致相同的錯誤。 秒評論塊。 謝謝@balbus your'e a野獸:)