当Apache Tiles 2.1无法执行任何操作时该怎么办?

时间:2010-08-04 14:08:30

标签: java spring struts2 spring-security tiles

读者(女孩)和读者(男孩),

我对Apache Tiles 2.1有一个轻率的f%*#@ probelm,我与之合作:

  • Struts 2.1.8.1
  • Apache Tiles 2.1
  • Spring 3.0.3
  • Spring Security 3.0.3

我的问题是:Apache Tiles不能在每个JSP上运行,它似乎有问题

<tiles:insertAttribute name="body" />

此插入没有数据。当我看到生成的结果时,我可以看到:

<table id="tilecontent">
    <tr>
         <sec:authorize access="hasRole('USER') and !hasRole('TESTER')"> 
            <td class="menu">
            <div id="nav"><tiles:insertAttribute name="menu" ignore="false"/></div>
            </td>
         </sec:authorize>
        <td>
        <div id="targetSynthese">

        <div id="ariane"><tiles:insertDefinition name="ariane" ignore="false"/></div>
        <table>
            <tr>
                <td class="errorMessage autoHeight"><tiles:insertDefinition name="error" /></td>
            </tr>
            <tr>
                <td><tiles:insertAttribute name="body" ignore="false"/></td>
            </tr>
        </table>
        </div>
        </td>
    </tr>
</table>

但是,当我刷新页面时,也会加载并使用图块。

问题来自于在“菜单”图块中使用sx:a,当我删除第一次正确加载的页面时。

春季安全是否可能有任何互动?

此致 谢谢大家。

编辑:Struts 2 JIRA https://issues.apache.org/jira/browse/WW-2950

1 个答案:

答案 0 :(得分:0)

我已经解决了我的问题。它似乎是由Spring Security引入的

我已在过滤调度程序中删除了INCLUDE:

<filter-mapping>
    <filter-name>springSecurityFilterChain</filter-name>
    <url-pattern>/*</url-pattern>
    <dispatcher>REQUEST</dispatcher>
    <!-- <dispatcher>INCLUDE</dispatcher> -->
    <dispatcher>FORWARD</dispatcher>
</filter-mapping>

并在我的applicationContext

中添加一次per-request =“false”
<sec:http access-denied-page="/accessDenied.jsp"
    use-expressions="true" auto-config="false"
    entry-point-ref="authenticationProcessingFilterEntryPoint"
    lowercase-comparisons="false" **once-per-request="false"** realm="Pouet">