java - 使用spring框架的setViewName方法指定视图名称,但是没有跳转到指定页面?

 Panzerkampfwagen-VI_238 发布于 2022-10-27 05:48

刚接触spring,照着书上敲了个简单的web mvc项目。大致意思是在浏览器输入地址localhost:8080/Ch3_1/hello.mvc后,后台根据请求名称hello调用相应的控制器,然后跳转到视图localhost:8080/Ch3_1/WEB-INF/pages/helloReader.jsp

在使用了spring框架的setViewName方法指定视图名称并返回后,奇怪但是并没有跳转到指定页面,而是跳转到了localhost:8080/Ch3_1/WEB-INF/pages/hello.jsp,由于实际没有这个页面,所以报了404错误。

代码如下:
控制器类:

@Controller
public class HelloWorldController {
    @RequestMapping(value = "/hello")
    public ModelAndView sayHello(){
        ModelAndView mv = new ModelAndView();
        mv.setViewName("helloReader"); //按理应该跳转到helloReader.jsp
        mv.addObject("message","Hello Readder!");
        return mv;
        //return "helloReader";
    }
}

springmvc-servlet.XML:


     
     
         
         
     

web.xml

 
      springmvc
      org.springframework.web.servlet.DispatcherServlet
      1
  
  
      springmvc
      *.mvc
  

不知道是哪里出了问题?
相关环境如下:

找了半天原因原来是ModelAndVeiw 类的包引错了。
应该引入的是: org.springframework.web.servlet.ModelAndView;
而之前引入的是 org.springframework.web.portlet.ModelAndView
不过这个portlet是什么东东呢。。

5 个回答
  • <property name="suffix" value=".jsp"/>
    改为
    <property name="suffix" value=".mvc"/>

    2022-10-27 05:48 回答
  • <property name="prefix" value="/WEB-INF/pages/"/>不用加/WEB-INF

    2022-10-27 05:48 回答
  • 可能是定义了一个默认的<welcome-file-list>hello页面,你的路径应该不需要ch3_1

    2022-10-27 05:49 回答
  • 你设置的springmvc拦截的路径是*.mvc,但是你spring设置的控制器路径只是/hello啊,根本不会交给springmvc处理。应该设置为/hello.mv,这样试试

    2022-10-27 05:49 回答
  • 楼上一堆瞎说的. 看了半天你的贴图,发现是没什么问题的.但是你这确实是404了.然后我又照着你的代码敲了一遍,我的是能正常访问的.

    如果我访问的url确实是不存在的页面,那么会报错如下:

    后台如下:

    而如果两个方法接收的url是一样的,springmvc会报错

    重复比较,发现咱们两最大的一个区别是在web.xml中加载DispatcherServlet那里

    我这里指向了springmvc的xml配置文件路径,如果没有指定具体的文件,则会默认去找WEB-INF下的{servlet-name}-servlet.xml配置文件,找不到则会报错.但是你的项目显然也并没有报错.
    所以我只能认为,你的url是不是哪里写错了.但是诡异的是你的hello.mvc竟然跳转到了hello.jsp,你能断点一下看进了controller了吗?
    很抱歉实在没找到你的问题原因.

    2022-10-27 05:49 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有