我想在site-mesh的装饰器文件中使用spring安全标记库的一些标记。但是,这些标签内的内容从未显示过。谁能告诉我为什么会这样?
代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<%@taglib prefix="decorator" uri="http://www.opensymphony.com/sitemesh/decorator" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@taglib prefix="sec" uri="http://www.springframework.org/security/tags" %>
<html xmlns="http://www.w3.org/1999/xhtml">
<!--HTML-->
<form id="login_form" method="post" action="<c:url value='j_spring_security_check'/>">
<sec:authorize access="isAuthenticated()">
<p>profile</p>
<p>messages</p>
</sec:authorize>
<sec:authorize access="isAnonymous()">
<!--A Login form -->
</sec:authorize>
</form>
<!--More HTML -->
</html>
由于某种原因,两个块都没有显示。
答案 0 :(得分:22)
我猜您需要在过滤器链中的Spring Security过滤器之后放置Sitemesh过滤器,即相应地在<filter-mapping>
中对其web.xml
进行排序。