2016-06-19 1 views
0

student_form.xhtml에서 코드를 실행하면 오류가 발생합니다. 나는 왜 오류가 부분적으로 영어와 독일어인지 모르겠다. student_form.xhtml에서 다음과 같은 경고 Unknown tag (f:selectItem).이 표시됩니다.경로 [/ hello]가있는 컨텍스트에서 서블릿 [Faces Servlet]에 대한 예외가 던졌습니다.

의 Servlet.service() 서블릿 경로 컨텍스트 [서블릿 얼굴]/헬로] 예외

student_form.xhtml 던져

<!DOCTYPE html> 
<html lang="en" xmlns="http://www.w3.org/1999/xhtml" 
    xmlns:h="http://xmlns.jcp.org/jsf/html" 
    xmlns:a="http://xmlns.jcp.org/jsf/passthrough"> 

<h:head> 
    <title>Student Registration Form</title> 
</h:head> 
<h:body> 

    <h:form> 
     <!-- JSF will call student.setName(string firstName) --> 
      First name: <h:inputText id="firstName" 
      value="#{student.firstName}" /> 
     <br /> 
     <br /> 

      Last name: <h:inputText id="lastName" 
      value="#{student.lastName}" /> 

     <br /> 
     <br /> 

      Country:    
      <h:selectOneMenu value="#{student.country}"> 
      <f:selectItem itemvalue="Brazil" itemLabel="Brazil" /> 
      <f:selectItem itemvalue="France" itemLabel="France" /> 
      <f:selectItem itemvalue="Germany" itemLabel="Germany" /> 
      <f:selectItem itemvalue="India" itemLabel="India" /> 
      <f:selectItem itemvalue="Turkey" itemLabel="Turkey" /> 
      <f:selectItem itemvalue="United kingdom" itemLabel="United kingdom" /> 
      <f:selectItem itemvalue="United States" itemLabel="United States" /> 
     </h:selectOneMenu> 



     <br /> 
     <br /> 


     <h:commandButton value="Submit" action="student_response" /> 
    </h:form> 

</h:body> 
</html> 

student_response.xhtml

<!DOCTYPE html> 
<html lang="en" 
    xmlns="http://www.w3.org/1999/xhtml" 
    xmlns:h="http://xmlns.jcp.org/jsf/html"> 

    <h:head> 
     <title>Student Confirmation</title> 
    </h:head> 
    <h:body> 
    <!-- JSF will call student.getFirstName() --> 

     The student is confirmed: #{student.firstName} #{student.lastName} 

     <br/> <br/> 

     The student's country: #{student.country} 

    </h:body> 
</html> 

학생 클래스

package com.stack; 

import javax.faces.bean.ManagedBean; 

@ManagedBean 
public class Student { 
    private String firstName; 
    private String lastName; 
    private String country; 

    public Student(){ 

    } 

    public String getFirstName() { 
     return firstName; 
    } 

    public void setFirstName(String firstName) { 
     this.firstName = firstName; 
    } 

    public String getLastName() { 
     return lastName; 
    } 

    public void setLastName(String lastName) { 
     this.lastName = lastName; 
    } 

    public String getCountry() { 
     return country; 
    } 

    public void setCountry(String country) { 
     this.country = country; 
    } 


} 

오류

Jun 19, 2016 7:40:41 PM org.apache.catalina.core.StandardWrapperValve invoke 
SCHWERWIEGEND: Servlet.service() for servlet [Faces Servlet] in context with path [/hello] threw exception [Error Parsing /student_form.xhtml: Error Traced[line: 26] Präfix "f" für Element "f:selectItem" ist nicht gebunden.] with root cause 
javax.faces.view.facelets.FaceletException: Error Parsing /student_form.xhtml: Error Traced[line: 26] Präfix "f" für Element "f:selectItem" ist nicht gebunden. 
    at com.sun.faces.facelets.compiler.SAXCompiler.doCompile(SAXCompiler.java:444) 
    at com.sun.faces.facelets.compiler.SAXCompiler.doMetadataCompile(SAXCompiler.java:427) 
    at com.sun.faces.facelets.compiler.Compiler.metadataCompile(Compiler.java:130) 
    at com.sun.faces.facelets.impl.DefaultFaceletFactory.createMetadataFacelet(DefaultFaceletFactory.java:499) 
    at com.sun.faces.facelets.impl.DefaultFaceletFactory.access$200(DefaultFaceletFactory.java:106) 
    at com.sun.faces.facelets.impl.DefaultFaceletFactory$2.newInstance(DefaultFaceletFactory.java:209) 
    at com.sun.faces.facelets.impl.DefaultFaceletFactory$2.newInstance(DefaultFaceletFactory.java:207) 
    at com.sun.faces.facelets.impl.DefaultFaceletCache$2.newInstance(DefaultFaceletCache.java:97) 
    at com.sun.faces.facelets.impl.DefaultFaceletCache$2.newInstance(DefaultFaceletCache.java:92) 
    at com.sun.faces.util.ExpiringConcurrentCache$1.call(ExpiringConcurrentCache.java:99) 
    at java.util.concurrent.FutureTask.run(Unknown Source) 
    at com.sun.faces.util.ExpiringConcurrentCache.get(ExpiringConcurrentCache.java:114) 
    at com.sun.faces.facelets.impl.DefaultFaceletCache.getViewMetadataFacelet(DefaultFaceletCache.java:146) 
    at com.sun.faces.facelets.impl.DefaultFaceletCache.getViewMetadataFacelet(DefaultFaceletCache.java:63) 
    at com.sun.faces.facelets.impl.DefaultFaceletFactory.getMetadataFacelet(DefaultFaceletFactory.java:320) 
    at com.sun.faces.facelets.impl.DefaultFaceletFactory.getMetadataFacelet(DefaultFaceletFactory.java:250) 
    at com.sun.faces.application.view.ViewMetadataImpl.createMetadataView(ViewMetadataImpl.java:113) 
    at com.sun.faces.lifecycle.RestoreViewPhase.execute(RestoreViewPhase.java:241) 
    at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) 
    at com.sun.faces.lifecycle.RestoreViewPhase.doPhase(RestoreViewPhase.java:121) 
    at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198) 
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:646) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) 
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) 
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) 
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:436) 
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1078) 
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625) 
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) 
    at java.lang.Thread.run(Unknown Source) 

답변

1

시도는 XMLNS를 추가합니다 : = "http://java.sun.com/jsf/core"F 당신의 HTML 태그

<html lang="en" 
xmlns="http://www.w3.org/1999/xhtml" 
xmlns:h="http://xmlns.jcp.org/jsf/html" xmlns:f="http://java.sun.com/jsf/core" > 
관련 문제