依旧接着上一篇文章中建立好的项目目录来学习,如果不是按照我上一篇博客来,配置文件方面可能会出问题() 接下来学习利用springmvc进行页面跳转,这里主要是用注解的方式来进行,依旧会写上点我个人的理解。
1.简单的跳转
首先是index.jsp写个跳转,然后在views目录下创建一个test1.jsp
接着在controller目录下创建mainController.java,并利用注释进行跳转
简单说明下运行机制吧。首先这个mainController的类上面标明了@Controller,即表示设置成了个”控制器”,它能接受来自jsp的请求,然后利用本类里的方法进行操控,像本例中:首先接收来自”index.jsp”的”<a href="test/href1">
“的请求,然后该类下的test1()方法利用@RequestMapping(“test/href1”)专门接受”a href”的请求,然后返回个”test1”,此处的test1经过applicationContext.xml的处理会变成”WEB-INF/views/test1.jsp”,于是”index.jsp”的连接就跳到“test1.jsp”了
效果如下:注意看路径,已经变了
2)返回一个后台数据
在index.jsp添加一句跳转页面二,然后创建test2.jsp
在mainController中添加如下
在这里简单说明下运行机制:
依旧是先利用@RequestMapping专门接收”test/href2”的请求,但是此处用到了参数“Model model”,我的理解就是这个Model有点像Map,能够给jsp中待定的EL表达式添加值,比如此处用了它自带的addAttribute方法,给test2.jsp中的${data},传入了一个random随机数
3)URL地址上显示数据,并传给后台
如果你回去看看,会发现,我们的网址基本就是”localhost:8080”,或者是”localhost:8080/test/href2”。这些网址都是我们自己设定的,没有带有任何数据。但是我们一般提交一个表单的时候,它是会在网址上显示出我们提交的信息的。如下(这里依旧是返回到test2的${data}):
运行机制说明:其实和第二点没多大区别,但是indes.jsp里添加了一段js。这段js就是说当我们点下按钮时候,那个链接会改变,比如此处我们就变成了”test/href3/data=阿萨德”,然后在mainController中,由于我们在运行前还不知道会传进来什么,于是我们便用EL表达式随便取名(比如此处取名chuan)。然后下面用到了@PathVariable注解,它的括号内的“chuan”要和${chuan}
对应。由于它后面立马接上了 String data,所以这个${chuan}
的值会经过@PathVariable传递给data。然后这个data就会传给”data”。(后面还会用到和@PathVariable相似的@RequestParam注解。有兴趣看他们区别的同学我会在后面附上我以前看书时的笔记)
4)form表单之GET
创建test3.jsp
说明:此处我们用了@RequestParam标签,其实它作用和@PathVariable类似。区别就在于显示出的路径不同(可以参考下我以前的学习笔记)。而且我们可以看到,利用GET会把我们要提交的东西全部写在路径中了(即”t1=122&t2=658”),这很不安全,因此我们用POST
5)form表单之POST
其实和get类似,只需要改动几个小地方就好了
可以看到,路径上没有我们提交的信息内容了