我有一个 portlet,它涉及显示几个 JSP 页面。
在第一个 JSP page A
,当我单击 Page A
上的“提交”按钮时processAction()
方法执行操作并生成 JSP page B
出现。
现在,如果我使用网络浏览器的后退按钮到page A
并再次点击提交按钮,
JSP page B
出现,但我注意到 processAction()
没有采取任何行动。 (通常单击 JSP 页面中的“提交”按钮会导致 processAction()
采取操作)。
谁能帮忙解决这个问题吗?在我的 Porlet 中,它必须转到流程操作,但在后退按钮之后不会。
最佳答案
这是默认行为。默认情况下,门户启用“多操作 URL 保护
”。加载页面时,会创建一个操作链接,并且该链接包含一个操作 ID
。同一操作 ID 不能在同一 session 中再次使用。因此,当您单击“后退”按钮时,如果页面是从历史缓存加载的,则您的表单将包含之前使用的相同操作链接。因此门户简单地重新加载页面,而不是调用processAction()
。
您可以通过在 portlet.xml
文件中为您的 portlet 添加以下配置来禁用此功能。
<init-param>
<name>wps.multiple.action.execution</name>
<value>true</value>
</init-param>
关于java - 后退按钮后,portlet 不会进入 processaction,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6456076/