2016-12-30 4 views
-2

識別子[#]は、EL仕様の1.19項(Identifier :: = Java言語識別子)で必要な有効なJava識別子ではありません。このチェックは、システムプロパティーを設定することで無効にすることができます。エラーの内容を理解できない

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

-im tomcat 8 serverを使用してチェックします。

フォームページ:

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; 
    } 

} 

<?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> 

両方のファイルが使用

豆.xhtml保存AR 210

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; 
    } 


} 

注:

SEVERE:サーブレット

それは(コメント)であるように、コードは、次のエラーを与えます。パス[/ jsf_2]のコンテキストでサーブレット[Faces Servlet]の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に設定することで無効にすることができます。 at org.apache.el.parser.AstIdentifier.setImage(AstIdentifier.java:177) at org.apache.el.parser.ELParser.Identifier(ELParser.java:1816) at 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) 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) org.apache.el.parser.ELParser.Multiplicationでorg.apache.el.parser.ELParser.Unary(ELParser.java:1298) (ELParser.java:1060) でorg.apacheで。 el.parser.ELParser.Math(ELParser.java:980)org.apache.el.parser.ELParser.Compareでorg.apache.el.parser.ELParser.Concatenation(ELParser.java:936) で (ELParser。 Javaの:org.apacheでorg.apache.el.parser.ELParser.Andでorg.apache.el.parser.ELParser.Equality(ELParser.java:641) (ELParser.java:585) で747) 。 el.parser.ELParser.Or(ELParser.java:529)org.apache.el.parser.ELParser.Assignmentでorg.apache.el.parser.ELParser.Choice(ELParser.java:486) で (ELParser。 Javaの:243) org.apache.el.parseでorg.apache.el.parser.ELParser.DeferredExpression(ELParser.javaでorg.apache.el.parser.ELParser.Expression(ELParser.java:175) でr.ELParser.Semicolon(ELParser.java:182) : 113)org.apache.elでorg.apache.el.lang.ExpressionBuilder.createNodeInternal(ExpressionBuilder.java:111でorg.apache.el.parser.ELParser.CompositeExpression(ELParser.java:41) で ) 。 org.apache.el.E​​xpressionFactoryImpl.createValueExpressionでorg.apache.el.lang.ExpressionBuilder.createValueExpression(ExpressionBuilder.java:232) でlang.ExpressionBuilder.build(ExpressionBuilder.java:168) (ExpressionFactoryImpl.java:67) com.sun.faces.facelets.el.E​​LText $ ELTEXでcom.sun.faces.facelets.el.E​​LText $ ELTextVariable.apply(ELText.java:203) で tComposite.apply(ELText.java:184)com.sun.faces.facelets.compiler.UIInstructionHandler.applyでcom.sun.faces.facelets.compiler.CommentInstruction.apply(CommentInstruction.java:81) で (UIInstructionHandler。ジャワ: でcom.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:190)でjavax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:137) における141) javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:120)javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:95)で com.sun.faces.facelets.compilerで 。 com.sun.faces.facelets.compでNamespaceHandler.apply(NamespaceHandler.java:93) com.sun.faces.application.view.FaceletViewHandlingStrategy.buildViewでiler.EncodingHandler.apply com.sun.faces.facelets.impl.DefaultFacelet.apply(DefaultFacelet.java:161)で(EncodingHandler.java:87) ( COMでcom.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) でcom.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:99) でFaceletViewHandlingStrategy.java:972) 。 sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:219)org.apache.catalina.core.ApplicationFilterChain.internalDoFilterでjavax.faces.webapp.FacesServlet.service(FacesServlet.java:647) で (ApplicationFilterChain。 Javaの:292) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207で)org.apache.tomcat.websocket.server.WsFilter.doFilterでorg.apache.catalina.core.ApplicationFilterChain.internalDoFilterで(WsFilter.java:52) (ApplicationFilterChain.java:240) org.apache.catalinaました。 org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.javaでorg.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212) でcore.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) : 106)org.apache.catalinaでorg.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141でorg.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502) で) 。 valves.ErrorReportValve.invoke(ErrorReportValve.java:79)org.apache.catalina.valvesで 。AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:528) (AbstractProtocol.java:687) 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(不明なソース) java.lang.Thread.runでorg.apache.tomcat.util.threads.TaskThread $ WrappingRunnable.run(TaskThread.java:61) (不明なソース)で

+0

使用しているサーバーはどれですか? – vinod

+0

http://stackoverflow.com/questions/15900044/expression-language-skip-identifier-check-in-tomcat-7こちらがお手伝いします。 – vinod

+0

郵便番号**をください**。 [ask]、特に[mcve]の部分を参照してください。あなたのコードにこれに関連するものは何もないと思っても、その理由があります。予期せぬことがあるかもしれません(あなたのために) – Kukeltje

答えて

0

ああ、それが機能するようになりましたOKI。 最初に私は持っていた同じエラーを引き起こした

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

。 はコメントブロックの2番目です。 ありがとう@balbus あなたの獣:

関連する問題