这是我在这里看到的一个问题,但发布的解决方案并未解决我的问题。我再次处理jsf 2.0,我有2个页面:login.xhtml和index.xhtml,我也使用SpringSecurity进行身份验证。 index.xhtml呈现正常但登录没有(页面源显示未解析的jsf标记)。我已经停用了SpringSecurity以检查是否与我的问题有关但没有运气......我真的不知道我的代码有什么问题(2天试图找出来),所以任何帮助都会非常感谢。这是我的代码:
的web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 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-app_2_5.xsd">
<context-param>
<param-name>javax.faces.PROJECT_STAGE</param-name>
<param-value>Development</param-value>
</context-param>
<!-- Spring Security -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<filter>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
<filter-name>springSecurityFilterChain</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- Spring Security -->
<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>
</servlet-mapping>
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>JSF2Example/index.xhtml</welcome-file>
</welcome-file-list>
login.xhtml的一部分
<h:head>
<title>Ejemplo JSF 2 AJAX</title>
</h:head>
<h:body>
<h:form id="login">
<h:panelGrid columns="2">
<h:outputLabel for="Usuario" value="Usuario:"/>
<h:inputText id="Usuario" value="#{loginBean.userName}" required="true"/>
<h:outputLabel for="Password" value="Contraseña:"/>
<h:inputSecret id="Password" value="#{loginBean.password}" required="true"/>
</h:panelGrid>
<h:commandButton value="Ingresar" actionListener="#{loginBean.doLogin}"/>
<h:messages/>
</h:form>
</h:body>
有任何想法吗?非常感谢!
答案 0 :(得分:4)
页面源显示未解析的jsf标记
这可能有两个原因:
页面网址与url-pattern
的{{1}}不匹配,因此没有机会解析代码。
FacesServlet
标记中缺少xmlns
个JSF组件声明,因此它被视为纯文本。