我是JSF和Spring的新手。我正在尝试在JSF中使用Spring Security。我设计了如下的XHTML页面:Spring标签在JSF xhtml文件中不起作用
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:spring="http://www.springframework.org/tags"
xmlns:form="http://www.springframework.org/tags/form">
<head>
<title>JSF Test</title>
</head>
<body>
<f:view>
<p>This page should be authenticated!</p>
<a href="<spring:url value="/j_spring_security_logout" htmlEscape="true" />">Logout</a>
<div>Test: <spring:url value="/j_spring_security_logout" htmlEscape="true" /></div>
</f:view>
</body>
</html>
我尝试添加使用spring:url
标签的注销链接。但是,首先这给出了一个错误,href
属性不能包含<。要排除此问题,我删除了a
标记,并使用div
来测试我是否能够从spring:url
标记中获得所需的值。我发现spring:url
标签没有被解析,而是显示在生成页面的源代码中。
而不是使用XHTML页面,如果我使用JSP页面taglibs而不是xmlns,一切正常。我无法理解为什么它不能使用XHTML文件。
我的Faces Servlet
映射到.jsf
和springSecurityFilterChain
映射到/
*
(没有之间的空间)。我试图将springSecurityFilterChain
映射到*.jsf
,这也无济于事。
我试过了,但它并没有预先考虑上下文路径。作为解决方法,我删除了前导/(正斜杠)。 – Cracker 2011-06-16 00:31:27
哦,男孩,你说得对。我会更新答案。我很确定它做到了。 – BalusC 2011-06-16 01:11:55