Spring JSR 286 Portlets中的浏览器后退按钮问题

时间:2013-04-02 15:16:05

标签: back-button jsr286 spring-portlet-mvc

我使用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。

请帮助我解决这个问题,因为我搜索了谷歌中的几乎所有内容以找到解决方案但没有运气!!

谢谢。

1 个答案:

答案 0 :(得分:0)

这是表单POST的预期行为。如果后退按钮必不可少,那么请使用GET作为表单方法。