我刚开始使用JSF 2.0,一开始就遇到了问题。不解析JSF标记。
以下是一些详细信息。希望有人可以提供帮助,因为所有相关的SO问题都无法解决我的问题。
hello.jsp
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core" xmlns:p="http://primefaces.org/ui"> <h:head> </h:head> <h:body> <f:view> asd <h:inputText value="asd" label="UserName"></h:inputText> </f:view> </h:body> </html>
导航到的内容http://localhost:8080/JSFDeneme/pages/hello.jsp
http://localhost:8080/JSFDeneme/pages/hello.jsp
只有明文 asd
asd
查看的来源http://localhost:8080/JSFDeneme/pages/hello.jsp
内容完全相同 hello.jsp
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core" xmlns:p="http://primefaces.org/ui"> <h:head> </h:head> <h:body> <f:view>asd <h:inputText value="asd" label="UserName"></h:inputText> </f:view> </h:body> </html>
web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> <display-name>JSFDeneme</display-name> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> <welcome-file>hello.jsp</welcome-file> </welcome-file-list> <servlet> <servlet-name>Faces Servlet</servlet-name> <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>Faces Servlet</servlet-name> <url-pattern>/faces/*</url-pattern> <url-pattern>/pages/*</url-pattern> <url-pattern>*.jsf</url-pattern> </servlet-mapping> <context-param> <param-name>javax.servlet.jsp.jstl.fmt.localizationContext</param-name> <param-value>resources.application</param-value> </context-param> <context-param> <description>State saving method: 'client' or 'server' (=default). See JSF Specification 2.5.2</description> <param-name>javax.faces.STATE_SAVING_METHOD</param-name> <param-value>client</param-value> </context-param> <context-param> <description> This parameter tells MyFaces if javascript code should be allowed in the rendered HTML output. If javascript is allowed, command_link anchors will have javascript code that submits the corresponding form. If javascript is not allowed, the state saving info and nested parameters will be added as url parameters. Default is 'true'</description> <param-name>org.apache.myfaces.ALLOW_JAVASCRIPT</param-name> <param-value>true</param-value> </context-param> <context-param> <description> If true, rendered HTML code will be formatted, so that it is 'human-readable' i.e. additional line separators and whitespace will be written, that do not influence the HTML code. Default is 'true'</description> <param-name>org.apache.myfaces.PRETTY_HTML</param-name> <param-value>true</param-value> </context-param> <context-param> <param-name>org.apache.myfaces.DETECT_JAVASCRIPT</param-name> <param-value>false</param-value> </context-param> <context-param> <description> If true, a javascript function will be rendered that is able to restore the former vertical scroll on every request. Convenient feature if you have pages with long lists and you do not want the browser page to always jump to the top if you trigger a link or button action that stays on the same page. Default is 'false' </description> <param-name>org.apache.myfaces.AUTO_SCROLL</param-name> <param-value>true</param-value> </context-param> <listener> <listener-class>org.apache.myfaces.webapp.StartupServletContextListener</listener-class> </listener> </web-app>
faces-config.xml
<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"> </faces-config>
我所拥有的WEB-INF/lib
WEB-INF/lib
重新启动服务器并导航到页面时,Tomcat打印到控制台的内容
似乎没有什么奇怪的,没有提及FacesServlet?
FacesServlet
06.Oca.2012 22:26:55 org.apache.catalina.core.AprLifecycleListener init INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\glassfish3\jdk\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:\Program Files (x86)\AMD APP\bin\x86_64;C:\Program Files (x86)\AMD APP\bin\x86;C:\Program Files\Common Files\Microsoft Shared\Windows Live;C:\apache-ant-1.8.2\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\ATI Technologies\ATI.ACE\Core-Static;C:\Program Files (x86)\QuickTime\QTSystem\;. 06.Oca.2012 22:26:56 org.apache.tomcat.util.digester.SetPropertiesRule begin WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:AjaxDenemeleri' did not find a matching property. 06.Oca.2012 22:26:56 org.apache.tomcat.util.digester.SetPropertiesRule begin WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:RPGW_RestAPI' did not find a matching property. 06.Oca.2012 22:26:56 org.apache.tomcat.util.digester.SetPropertiesRule begin WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:JSFDeneme' did not find a matching property. 06.Oca.2012 22:26:56 org.apache.coyote.AbstractProtocol init INFO: Initializing ProtocolHandler ["http-bio-8080"] 06.Oca.2012 22:26:56 org.apache.coyote.AbstractProtocol init INFO: Initializing ProtocolHandler ["ajp-bio-8009"] 06.Oca.2012 22:26:56 org.apache.catalina.startup.Catalina load INFO: Initialization processed in 680 ms 06.Oca.2012 22:26:56 org.apache.catalina.core.StandardService startInternal INFO: Starting service Catalina 06.Oca.2012 22:26:56 org.apache.catalina.core.StandardEngine startInternal INFO: Starting Servlet Engine: Apache Tomcat/7.0.22 06.Oca.2012 22:26:56 com.sun.jersey.api.core.PackagesResourceConfig init INFO: Scanning for root resource and provider classes in the packages: sample.hello.resources 06.Oca.2012 22:26:56 com.sun.jersey.api.core.ScanningResourceConfig logClasses INFO: Root resource classes found: class sample.hello.resources.HelloResource class sample.hello.resources.ContactsResource 06.Oca.2012 22:26:56 com.sun.jersey.api.core.ScanningResourceConfig init INFO: No provider classes found. 06.Oca.2012 22:26:57 com.sun.jersey.server.impl.application.WebApplicationImpl _initiate INFO: Initiating Jersey application, version 'Jersey: 1.10 11/02/2011 03:53 PM' 06.Oca.2012 22:27:00 org.apache.catalina.core.StandardContext addApplicationListener INFO: The listener "org.apache.myfaces.webapp.StartupServletContextListener" is already configured for this context. The duplicate definition has been ignored. 06.Oca.2012 22:27:00 org.apache.myfaces.shared_impl.config.MyfacesConfig getBooleanInitParameter INFO: No context init parameter 'org.apache.myfaces.RENDER_CLEAR_JAVASCRIPT_FOR_BUTTON' found, using default value false 06.Oca.2012 22:27:00 org.apache.myfaces.shared_impl.config.MyfacesConfig getBooleanInitParameter INFO: No context init parameter 'org.apache.myfaces.RENDER_HIDDEN_FIELDS_FOR_LINK_PARAMS' found, using default value false 06.Oca.2012 22:27:00 org.apache.myfaces.shared_impl.config.MyfacesConfig getBooleanInitParameter INFO: No context init parameter 'org.apache.myfaces.SAVE_FORM_SUBMIT_LINK_IE' found, using default value false 06.Oca.2012 22:27:00 org.apache.myfaces.shared_impl.config.MyfacesConfig getBooleanInitParameter INFO: No context init parameter 'org.apache.myfaces.READONLY_AS_DISABLED_FOR_SELECTS' found, using default value true 06.Oca.2012 22:27:00 org.apache.myfaces.shared_impl.config.MyfacesConfig getBooleanInitParameter INFO: No context init parameter 'org.apache.myfaces.RENDER_VIEWSTATE_ID' found, using default value true 06.Oca.2012 22:27:00 org.apache.myfaces.shared_impl.config.MyfacesConfig getBooleanInitParameter INFO: No context init parameter 'org.apache.myfaces.STRICT_XHTML_LINKS' found, using default value true 06.Oca.2012 22:27:00 org.apache.myfaces.shared_impl.config.MyfacesConfig getBooleanInitParameter INFO: No context init parameter 'org.apache.myfaces.RENDER_FORM_SUBMIT_SCRIPT_INLINE' found, using default value false 06.Oca.2012 22:27:00 org.apache.myfaces.shared_impl.config.MyfacesConfig getLongInitParameter INFO: No context init parameter 'org.apache.myfaces.CONFIG_REFRESH_PERIOD' found, using default value 2 06.Oca.2012 22:27:00 org.apache.myfaces.shared_impl.config.MyfacesConfig getBooleanInitParameter INFO: No context init parameter 'org.apache.myfaces.VIEWSTATE_JAVASCRIPT' found, using default value false 06.Oca.2012 22:27:00 org.apache.myfaces.shared_impl.config.MyfacesConfig getStringInitParameter INFO: No context init parameter 'org.apache.myfaces.REFRESH_TRANSIENT_BUILD_ON_PSS' found, using default value auto 06.Oca.2012 22:27:00 org.apache.myfaces.shared_impl.config.MyfacesConfig getBooleanInitParameter INFO: No context init parameter 'org.apache.myfaces.REFRESH_TRANSIENT_BUILD_ON_PSS_PRESERVE_STATE' found, using default value false 06.Oca.2012 22:27:00 org.apache.myfaces.shared_impl.config.MyfacesConfig getBooleanInitParameter INFO: No context init parameter 'org.apache.myfaces.VALIDATE_XML' found, using default value false 06.Oca.2012 22:27:00 org.apache.myfaces.shared_impl.config.MyfacesConfig getBooleanInitParameter INFO: No context init parameter 'org.apache.myfaces.WRAP_SCRIPT_CONTENT_WITH_XML_COMMENT_TAG' found, using default value true 06.Oca.2012 22:27:00 org.apache.myfaces.shared_impl.config.MyfacesConfig createAndInitializeMyFacesConfig INFO: Tomahawk jar not available. Autoscrolling, DetectJavascript, AddResourceClass and CheckExtensionsFilter are disabled now. 06.Oca.2012 22:27:00 org.apache.myfaces.config.FacesConfigurator feedStandardConfig INFO: Reading standard config META-INF/standard-faces-config.xml 06.Oca.2012 22:27:00 org.apache.myfaces.config.FacesConfigurator addClassloaderConfigurations INFO: Reading config : jar:file:/D:/documents/code/java/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/JSFDeneme/WEB-INF/lib/primefaces-3.0.jar!/META-INF/faces-config.xml 06.Oca.2012 22:27:00 org.apache.myfaces.config.FacesConfigurator getWebAppConfig INFO: Reading config /WEB-INF/faces-config.xml 06.Oca.2012 22:27:00 org.apache.myfaces.config.FacesConfigurator startLib INFO: Starting up MyFaces-package : myfaces-api in version : 2.0.2 from path : file:/D:/documents/code/java/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/JSFDeneme/WEB-INF/lib/myfaces-api-2.0.2.jar 06.Oca.2012 22:27:00 org.apache.myfaces.config.FacesConfigurator startLib INFO: Starting up MyFaces-package : myfaces-impl in version : 2.0.2 from path : file:/D:/documents/code/java/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/JSFDeneme/WEB-INF/lib/myfaces-impl-2.0.2.jar 06.Oca.2012 22:27:00 org.apache.myfaces.config.FacesConfigurator startLib INFO: MyFaces-package : tomahawk not found. 06.Oca.2012 22:27:00 org.apache.myfaces.config.FacesConfigurator startLib INFO: MyFaces-package : tomahawk12 not found. 06.Oca.2012 22:27:00 org.apache.myfaces.config.FacesConfigurator startLib INFO: MyFaces-package : tomahawk-sandbox not found. 06.Oca.2012 22:27:00 org.apache.myfaces.config.FacesConfigurator startLib INFO: MyFaces-package : tomahawk-sandbox12 not found. 06.Oca.2012 22:27:00 org.apache.myfaces.config.FacesConfigurator startLib INFO: MyFaces-package : tomahawk-sandbox15 not found. 06.Oca.2012 22:27:00 org.apache.myfaces.config.FacesConfigurator startLib INFO: MyFaces-package : myfaces-orchestra-core not found. 06.Oca.2012 22:27:00 org.apache.myfaces.config.FacesConfigurator startLib INFO: MyFaces-package : myfaces-orchestra-core12 not found. 06.Oca.2012 22:27:00 org.apache.myfaces.config.FacesConfigurator startLib INFO: MyFaces-package : trinidad-api not found. 06.Oca.2012 22:27:00 org.apache.myfaces.config.FacesConfigurator startLib INFO: MyFaces-package : trinidad-impl not found. 06.Oca.2012 22:27:00 org.apache.myfaces.config.FacesConfigurator startLib INFO: MyFaces-package : tobago not found. 06.Oca.2012 22:27:00 org.apache.myfaces.config.FacesConfigurator startLib INFO: MyFaces-package : commons-el not found. 06.Oca.2012 22:27:00 org.apache.myfaces.config.FacesConfigurator startLib INFO: MyFaces-package : jsp-api not found. 06.Oca.2012 22:27:00 org.apache.myfaces.util.ExternalSpecifications isBeanValidationAvailable INFO: MyFaces Bean Validation support disabled 06.Oca.2012 22:27:00 org.apache.myfaces.config.annotation.DefaultAnnotationProvider webClasses WARNING: AnnotationConfigurator does not found classes for annotations in /WEB-INF/classes/ . This could happen because maven jetty plugin is used (goal jetty:run). Try configure org.apache.myfaces.annotation.SCAN_PACKAGES init parameter or use jetty:run-exploded instead. 06.Oca.2012 22:27:00 org.apache.myfaces.application.ApplicationImpl getProjectStage INFO: Couldn't discover the current project stage, using Production 06.Oca.2012 22:27:00 org.apache.myfaces.config.FacesConfigurator handleSerialFactory INFO: Serialization provider : class org.apache.myfaces.shared_impl.util.serial.DefaultSerialFactory 06.Oca.2012 22:27:00 org.apache.myfaces.config.annotation.DefaultLifecycleProviderFactory getLifecycleProvider INFO: Using LifecycleProvider java.lang.String 06.Oca.2012 22:27:01 org.apache.myfaces.webapp.AbstractFacesInitializer initFaces INFO: ServletContext 'D:\documents\code\java\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\JSFDeneme\' initialized. 06.Oca.2012 22:27:01 org.primefaces.webapp.PostConstructApplicationEventListener processEvent INFO: Running on PrimeFaces 3.0 06.Oca.2012 22:27:01 org.apache.coyote.AbstractProtocol start INFO: Starting ProtocolHandler ["http-bio-8080"] 06.Oca.2012 22:27:01 org.apache.coyote.AbstractProtocol start INFO: Starting ProtocolHandler ["ajp-bio-8009"] 06.Oca.2012 22:27:01 org.apache.catalina.startup.Catalina start INFO: Server startup in 4958 ms
任何帮助表示赞赏。
这不是正确的扩展名。
从JSF 2.0开始,已弃用JSP,并由Facelets代替。Facelets是一种基于XML的视图技术,应该写入.xhtml文件中。但是,您似乎已经在JSP文件中使用了有效的Facelets语法。您需要做的就是重命名hello.jsp为hello.xhtml。
.xhtml
hello.xhtml
我还建议将所有URL模式替换为一个URL模式*.xhtml。
*.xhtml
<servlet-mapping> <servlet-name>Faces Servlet</servlet-name> <url-pattern>*.xhtml</url-pattern> </servlet-mapping>
这样您就可以通过http:// localhost:8080 / JSFDeneme / hello.xhtml打开它,而无需摆弄虚拟URL。
我不确定您阅读了哪些书籍/教程,从而使您无法使用JSP扩展。也许您正在阅读针对JSF 1.x和JSF 2.x的混合教程。您需要确保正在阅读JSF 2.x特定教程。在我们的JSFWiki页面的底部,您可以找到几个JSF 2.x教程链接。