Javascript Tapestry:重新加载页面会清空页面内容

Javascript Tapestry:重新加载页面会清空页面内容,javascript,java,html,mysql,tapestry,Javascript,Java,Html,Mysql,Tapestry,我有一个关于Tapestry(版本5.3)行为的问题: 我有一个“web应用程序”(带有tomcat6的本地服务器,没有http://),它有多个页面连接到MySQL数据库。带有的将向数据库发送搜索查询,然后数据库将返回一个页面,其中包含搜索参数的内容通过打印到.tml页面。重新加载页面或返回并再次搜索同一参数(例如字符串)时,会导致页面不再显示任何非静态内容(字符串内容未静态写入.tml)。我已经尝试过不同的重新加载方法,但总是相同的空白输出 代码:包含输出的页面按如下方式打印: <p

我有一个关于Tapestry(版本5.3)行为的问题: 我有一个“web应用程序”(带有tomcat6的本地服务器,没有http://),它有多个页面连接到MySQL数据库。带有
将向数据库发送搜索查询,然后数据库将返回一个页面,其中包含搜索参数的内容通过
打印到.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}

listSize包含搜索后的查询结果,printedLineCount等于continueCondition为true(页面上的打印行数)

当问题发生时,Java列表将尽可能大,而另一个值为零,因此不会在页面上显示任何输出。我现在的问题是,为什么它只打印一次内容(页面创建),而不是每次页面(重新)加载?这与浏览器/服务器缓存有关吗?如果是的话,我能做些什么来扔掉缓存并重新加载它,让它再次显示?或者如果没有,我是否可以做些什么来破坏页面链接并重新创建它(如果已经存在)

提前感谢,, 问候


旁注:重新启动浏览器可以解决问题。(在第一次搜索时,一切正常,但如果重新加载页面或再次搜索同一查询,则错误相同)

响应对象为您提供了设置(覆盖)标题的方法;这些标题必须请求浏览器不要缓存页面

典型的标题是

@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");

头可以从任何框架发送,这里是关于“无缓存”头的。

响应对象为您提供了设置(覆盖)头的方法;这些标题必须请求浏览器不要缓存页面

典型的标题是

@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");

头可以从任何框架发送,下面是关于“无缓存”头的信息。

可能是头问题。你用的是什么版本的Tapestry?对不起,我忘了那个信息。我正在使用Tapestry 5.3。可能是标题问题。你用的是什么版本的Tapestry?对不起,我忘了那个信息。我正在使用Tapestry 5.3。谢谢你的回答,这似乎是我一直在寻找的!但我还有另一个问题:当我使用带有tomcat6的本地服务器来托管web应用程序时,这是否会改变头的内容?我应该把它放在哪里?(例如,新类、包含在AppModule中、包含在PageLayout中等)。再次感谢你的回答,好像是我在寻找的!但我还有另一个问题:当我使用带有tomcat6的本地服务器来托管web应用程序时,这是否会改变头的内容?我应该把它放在哪里?(例如,新类、包含在AppModule中、包含在PageLayout中等)。再次感谢