返回的是string类型
在后台创建一个控制器
然后在控制器中创建一个类,注意注解的使用,注解前面说了,注解的东西,可以被加到spring的这个容器中,spring作为一个容器,并不是什么都接收的,只接收注解的类
代码如下
在前台写一个jsp页面
404界面
直接访问这个页面,得到的效果是这样的
报错的页面,在web.xml中已经设置了,404错误的原因是路径找不到,然后在配置文件中配置了发生404错误的时候转接到这个页面。
对controller这个java文件的理解
在视图分发器中,可以看到如下的代码,上面代表的是前缀,下面代表的是后缀。
因此可以看到,如下,我们在返回index的时候,其实本质是返回的是/WEB-INF/views/index.jsp
然后由于我们还没有写这个页面,因此会出现页面访问的路径出现错误,即404报错,又因为我们在web.xml中定义的有一个出现404报错的时候,进行404.jsp这个页面的转接,所以报错信息的界面换成了那个404报错的界面。
整个流程走一遍
下面阐述我的理解
首先
访问这个页面,会到SpringMVC的视图分发器,然后这个视图分发器,根据这个视图分发器的system,识别是我们要找的视图处理界面
然后进行视图的分发,由于SpringMVC的配置文件中加的有前后缀
所以最终访问的是这个index的界面
看下,标记的4其实就是转发到我们最终想要的界面,这个界面就只我们最终看到的界面,2传过来的index是不能直接访问我们这个index方法的,最先的是system的配置,之后是index与value中的index匹配,匹配成功,就能运行这个index方法了。
因此,最终输出的是helloWorld
返回一个model
可以很明显的看出,上面的是效果其实和重定向差不多,而且很坑的是,我们竟然搞了半天,就只做了一个页面的跳转???下面说一下怎么带值进行页面的跳转
使用这个值直接用EL表达式就好了,不会EL表达式的,可以看一下这篇文章
https://blog.youkuaiyun.com/qq_43918130/article/details/102650125
我们运行这个
然后看一下这个
看最终效果
验证
我现在把文件名改一下,改成system1,下面的都不变
要变的是这里
最终跑出来的效果也是这样的
所以说,我们的return中的system定义的是路径,而注解中的system相当于是视图分发器一个名字,是为了给那个index.jsp页面用来识别这个视图分发器的。