spring MVC页面的重定向

时间:2023-01-29 20:54:41

spring MVC页面的重定向

如图,一个jsp页面跳转到下一个jsp页面通常需要上一个页面发出带有参数得请求,我们都知道spring MVC是不能直接跳页面的。

需要配置视图解析器,通过返回视图名再跳转到相应得JSP页面。

即使这样,上一个页面得请求就在下一个页面得地址栏中显示了,不仅不美观数据也不安全,而且在操作订单数据时,按F5刷新页面有可能重新提交一次订单。

因此这样得操作是及其不安全得。需要使用到重定向。

我们只需要写一个重定向到带参数(视图名)的方法,每一个要跳转页面的方法都使用它,不需要一个一个的写。如下:

/**
* 重定向到请求成功的页面
* @return
*/
@RequestMapping("/resultJsp/{jspUrl}")
public String resultJSP(@PathVariable("jspUrl") String jspUrl){
return jspUrl;
} 调用:
/**
* 跳转到新闻列表
* @param id
* @return
*/
@RequestMapping(value = "/static/toNewList/{id}")
public String toNewList(@PathVariable("id") int id,
HttpServletRequest request){
List<News> newlist=new ArrayList<News>();
switch (id){
case 1:
newlist=(List<News>)request.getSession().getAttribute("cardSals");
break;
case 2:
newlist=(List<News>)request.getSession().getAttribute("recruitList");
break;
case 3:
newlist=(List<News>)request.getSession().getAttribute("cooperationList");
break;
case 4:
newlist=(List<News>)request.getSession().getAttribute("concatList");
break;
case 5:
newlist=(List<News>)request.getSession().getAttribute("weList");
break;
}
request.getSession().setAttribute("newlist",newlist);
request.getSession().setAttribute("tid",id);
return "redirect:/resultJsp/newList";
}
结果如下:

spring MVC页面的重定向

如果有权限问题,需要在拦截器放过resultJsp开头的方法就可以了