apache tile每次刷新所有属性吗?

时间:2013-04-24 06:22:44

标签: jquery ajax spring apache-tiles

在我的spring应用程序中使用Apache切片之前,我想确认apache切片是否重新加载了正在加载新页面的所有布局属性(例如Header,Menu,Body,footer)。

您能否确认每个新页面加载的工作情况?另外,哪个是使用ajax div load vs apache tiles更好的选择?

2 个答案:

答案 0 :(得分:0)

servlet容器会注意到JSP文件中的更改并重新编译它们(当然,如果没有配置它);例如,当你改变

<title><tiles:insertAttribute name="foo" /></title>

<title><tiles:insertAttribute name="bar" /></title>

磁贴定义(即tiles.xml文件)仅在启动时默认加载。根据{{​​3}},您可以添加一个过滤器,如果需要,可以重新加载切片定义。

<filter>
    <filter-name>Tiles Filter</filter-name>
    <filter-class>org.apache.tiles.web.startup.TilesFilter</filter-class>
    <init-param>
        <param-name>
          org.apache.tiles.impl.BasicTilesContainer.DEFINITIONS_CONFIG
        </param-name>
        <param-value>
          /WEB-INF/tiles-defs.xml,/org/apache/tiles/classpath-defs.xml
        </param-value>
    </init-param>
</filter>

<filter-mapping>
    <filter-name>Tiles Filter</filter-name>
    <url-pattern>/*</url-pattern>
    <dispatcher>REQUEST</dispatcher>
</filter-mapping>

不幸的是,它似乎不适用于我的情况。

the documentation建议改用:

<context-param>
  <param-name>org.apache.tiles.definition.dao.LocaleUrlDefinitionDAO.CHECK_REFRESH</param-name>
  <param-value>true</param-value>
</context-param>

......但这对我也没有用。


Re:“ajax div load vs apache tiles”:我不完全确定第一个是什么意思,假设这会在运行时通过AJAX获取HTML片段,我相信Tiles因为页面将在服务器端生成,所以表现会更好,在AJAX解决方案中,用户的浏览器必须一点一点地组装它。这一切都取决于你的用例,真的(页面有多动态?在用户会话期间它是否会发生变化?)

答案 1 :(得分:0)

     <table class="table">
     <thead>
       <tr>
        <th>ID</th>
        <th>Name</th>
       </tr>
     </thead>
        <tbody>
        <tr>
      <td>
           102
          </td>
      <td data-editable id="102">
           Elex Jordan
          </td>
        </tr>

在配置图块时使用 checkrefresh 属性。

这将首先加载所有碎片,然后再从内存缓存/磁盘缓存中加载它们。

您可以使用检查元素对此进行检查