关于springmvc工作中的体会(2)

问题描述:

今天在写参照的时候需要返回一个视图页面,平时自己开发中一般用得最多的就是利用getJspPagePath()这个方法,直接将要展示的视图的路径放到后面做参数拼接。但是这种方式只能定位到当前jsp路径的同一个文件夹下的视图。如果我要是在一个action里去返回其他文件夹下的视图,这样就不能使用getJspPagePath()这个方法了。

解决过程:

1.首先我的第一想法是利用ModelAndView下的redirect来进行重定向,也就是ModelAndView("redirect:/project/portal.jsp");那句话怎么说来着,玩了一辈子的鹰,最后被鹰啄了眼。在学习jsp的时候就学过redirect和forward的区别,重定向是客户端再次向服务端发送请求,而转发是一次请求。重点不在这里,而是自己忘了redirect是两次请求,既然是请求,那么必然要被Springmvc的disPatcherServlet(中央处理器)所拦截,拦截之后必然要去告诉handlerMapping去寻找,自己没有这个requestMapping,肯定报404找不到

2.自己的想法仅仅是在当前action下的requestMapping中返回我想要的视图即可,那么我就使用另外一种方法,直接指定jsp的路径,ModelAndView("/project/portal.jsp');但是这种方式还是报找不到404,这就让我很疑惑了,这是怎么回事。还是那句话,项目上的springMvc.xml配置的视图解析器,里面呢肯定是配置了后缀的啊,就不用写后缀了啊

那自己再写portal.jsp当然找不到了。包括上面的redirect那里也是犯了同样的错误

这样然后修改之后就可以定位到任意文件夹下的jsp视图了。

总结:

对于直接想要定位的视图使用第二种方式即可,

切记:redirect仅仅是又请求了一次即可,后面的参数是请求的requestMapping而已,不可当作视图名字

扫描二维码关注公众号,回复: 5156242 查看本文章

看来自己对Springmvc体会的还不过深!

猜你喜欢

转载自blog.csdn.net/dghkgjlh/article/details/85699861
今日推荐