我使用sprint portlets JSR 286开发了一个Web应用程序,它在Web浏览器中以表格格式显示数据。
下面给出了用于从JSP文件调用控制器的代码。
`
function openPortletReport(displayName,reportName,linkNum){
document.eployerSearchLightFrm.action='<%=formAction%>';
document.getElementById("reportName").value=reportName;
document.getElementById("parentLinkName").value=linkNum;
document.getElementById("eployerSearchLightFrm").submit();
}
` 表单操作类型是POST和reportName,parentLinkName是参数。
在提交此表单时,调用Controller的 handlerRenderRequest 方法。从数据库获取数据后,我们在ModelAndView对象中传递视图的名称,如下所示: -
`modelAndView = new ModelAndView("searchlight/genderProfile");
return modelAndView;`
此视图名称使用应用程序上下文xml文件中的ViewResolver与相关JSP文件进行映射,如下所示: -
`
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"></property>
<property name="prefix" value="/WEB-INF/jsp/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
`
显示此JSP文件后,该JSP文件中可能会有另一个链接,该链接将按照上述相同的过程转到某个新的JSP文件。
现在使用上面的过程在浏览器中加载JSP文件之后,如果我点击浏览器后退按钮,它就不会重新发送它给浏览器中的网页已过期错误的portlet请求。所有浏览器都在发生这种情况,包括IE 8,Mozilla Firefox 19和Chrome 24。
请帮助我解决这个问题,因为我搜索了谷歌中的几乎所有内容以找到解决方案但没有运气!!
谢谢。
答案 0 :(得分:0)
这是表单POST的预期行为。如果后退按钮必不可少,那么请使用GET作为表单方法。