关于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而已,不可当作视图名字

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值