我有一个关于Tapestry (Version5.3)的行为的问题:我有一个'web应用程序‘(带有tomcat6的本地服务器,没有连接到MySQL数据库的多个页面的tomcat6)。带有<t:form>
的<t:submit>
将向数据库发送一个搜索查询,然后数据库将返回一个页面,其中包含搜索参数的内容通过<t:outputraw>
打印到.tml页面。在重新加载页面或返回并搜索相同的参数(例如字符串)时,再次导致页面不再显示任何非静态内容(字符串内容没有静态写入.tml)。我已经尝试过不同的重新加载方法,但始终是相同的空白输出。
代码:
包含输出的页面如下所示:
<p style="line-spacing: 12px">
<t:loop source="List" value="StringEntry">
<t:if test="continuecondition">
<t:outputraw value="FoundString" />
<br />
</t:if>
</t:loop>
</p>
此外,我还试着检查问题的哪一部分发生。
<p>
<b>${listSize} </b> <br/>
<b>${printedLineCount}</b>
</p>
listSize包含搜索后的查询结果,printedLineCount等于continueCondition为true的数量(页面上的打印行数)。
当出现问题时,Java列表就像它应该的那样大,而另一个值是零,因此没有在页面上显示任何输出。我现在的问题是,为什么它只打印一次内容(分页),而不是每次页面加载(重新)?它与浏览器/服务器缓存有关吗?如果是的话,我能做些什么来丢弃缓存并以这种方式重新加载它吗?或者,如果没有,我可以做些什么来破坏PageLink,如果已经存在的话重新创建它吗?
先谢谢,亲切的问候
边注:重新启动浏览器解决了问题。(在第一次搜索中,一切正常,但是如果重新加载页面或再次搜索相同的查询,则错误是相同的)
发布于 2016-02-02 15:55:24
Response
对象提供了一种设置(覆盖)头的方法;这些标头必须请求浏览器不要缓存页面。
典型的标头是
@Inject
private Response response;
...
response.setDateHeader("Expires", 0);
response.setHeader("Cache-Control", "no-store, no-cache, must-revalidate");
response.setHeader("Cache-Control", "post-check=0, pre-check=0");
response.setHeader("Pragma", "no-cache");
头可以从任何框架发送,这里是关于“不缓存”头的more information。
https://stackoverflow.com/questions/35157434
复制相似问题