Spring MVC 系列(四)——Spring MVC 与Ajax交互及重定向操作
来源:互联网 发布:淘宝的股东构成 编辑:程序博客网 时间:2024/04/26 13:50
一、Spring MVC 与Ajax交互
一般情况下,Controller中方法返回值类型有两种
1、String 直接跳转到某View界面
2、Void 不需要进行页面跳转,直接访问下一个方法
返回String类型跳转界面的参数接收和传递在Spring MVC 参数传递与表单交互中已经有过介绍。执行void无需进行页面跳转的方法,在Spring MVC中,主要是通过前台View中ajax的交互进行访问。
例如有如下Controller: view plain cop
@RequestMapping("/ajax.do") public void ajax1(String name, PrintWriter out){ String result = "hello " +name; out.write(result); } @RequestMapping("/toAjax.do") public String toAjax(){ return "ajax"; }
前台jsp通过ajax访问ajax.do方法
- <script type="text/javascript" src="js/jquery-1.6.2.js"></script>
- <script type="text/javascript">
- $(function(){
- $("#mybutton").click(function(){
- $.ajax({
- url:"test/ajax.do",
- type:"post",
- dataType:"text",
- data:{
- name:"max1209" //为ajax.do方法传递name参数
- },
- success:function(responseText){
- alert(responseText);
- },
- error:function(){
- alert("system error");
- }
- });
- });
- });
- </script>
二、表单提交
Spring MVC为web前台的表单提交,与struts2中action没有太大区别,但也有两点需要注意:
1、action的路径如果controller类上写了@RequestMapping注解指定命名空间,则需要在form标签的action中写名该路径。否则无法找到该controller
2、Form中传递的参数也需要保证与实体的set方法一致或是方法中定义的参数名一致才可接收
3、表单提交的方式需要与@RequestMapping注解中method值一致才可以正确提交,【method的作用就在于指定前台表单提交的方式 post 、get】RequestMapping默认是post提交。
<body> <form action="test/upload.do" method="post"> name:<input name="name" type="text"><br> age:<input name="age" type="text"><br> address:<input name="address" type="text"><br> birthday:<input name="birthday" type="text"><br> <input type="submit" value="submit"><br> </form> </body>
三、重定向操作
转发和重定向,最直观的区别就在于:转发操作完成后,浏览器的URL地址并不会改变,而重定向会跳转到下一个URL。
原因在于执行转发时,JSP容器将使用一个内部的方法来调用目标页面,新的页面继续处理同一个请求,而浏览器将不会知道这个过程。例如在ajax访问实例中,通过toAjax方法执行转发,跳转到Ajax.jsp页面,页面加载ajax代码,执行Ajax.do方法。整个过程浏览器的URL一直显示的是http://localhost:8091/springMVC/toAjax.do,浏览器并不会显示执行ajax.do方法的过程。
如果使用重定向执行toAjax,do 和ajax.do方法,则浏览器会先发送http://localhost:8091/springMVC/toAjax.do请求,执行toAjax,在发送一个新的请求即http://localhost:8091/springMVC/Ajax.do来访问第二个方法。
所以转发一般比重定向的速度快,因为浏览器只发送一个请求就可以访问多个方法,完成一条业务逻辑,重定向会使得每访问一个方法,就发送一个request请求,同时URL也会相应改变。
但从根本上而言,转发和重定向的根本区别在于转发到新的jsp时,无需发送一个新的request请求,不同界面间的数据都叠加存放到一个request中共享。而使用重定向到另一界面时,浏览器会重新发送一个request请求,使得原来界面的request对象和其中保存的数据一并失效,新的request来记录新的请求信息。所以转发操作对于数据共享获取都比较方便,但存在如果界面重新加载,则需要将第一页面也重新加载。
在Spring MVC中,转发和重定向:
//转发 @RequestMapping("/toForm.do") public String toForm(){ return "form"; } //重定向 @RequestMapping("/redirectToForm.do") public String redirectToForm(){ return "redirect:toForm.do"; }在Spring MVC中,重定向分为两种类型:同一个control内的重定向、不同controller之间的重定向。
<span style="font-family:Comic Sans MS;"> //重定向 //controller内部重定向,redirect:加上同一个controller中的requestMapping的值 @RequestMapping("/redirectToForm.do") public String redirectToForm(){ return "redirect:toForm.do"; } //controller之间的重定向:必须要指定好controller的命名空间再指定requestMapping的值, //redirect:后必须要加/,是从根目录开始 @RequestMapping("/redirectToForm1.do") public String redirectToForm1(){ return "redirect:/test1/toForm.do"; }</span>
- Spring MVC 系列(四)——Spring MVC 与Ajax交互及重定向操作
- Spring MVC 系列(四)——Spring MVC 与Ajax交互及重定向操作
- AJAX与spring mvc交互
- AJAX与spring mvc交互
- AJAX与spring mvc交互
- Spring MVC 系列(三)——Spring MVC 参数传递与表单交互
- Spring MVC 系列(三)——Spring MVC 参数传递与表单交互
- Spring MVC 系列(三)——Spring MVC 参数传递与表单交互
- spring mvc 重定向
- Spring MVC 重定向
- Spring4 Spring MVC实战(四)——Spring MVC实现类struts通配符跳转,HMTL、Ajax和EasyUI的交互,405及406错误
- spring MVC 转发与重定向
- Spring MVC 中重定向 及 重定向源码跟踪
- spring MVC 转发与重定向(传参)
- Spring MVC与Ajax交互实例
- 【转】spring MVC 转向(重定向)
- Spring MVC 跳转(2)-重定向
- Spring mvc 转发、重定向
- 微信支付java版V3验证数据合法性
- TTTAttributedLabel 使用方法
- LeetCode[384] Shuffle an Array
- Digimat-MF:平均场均匀化——(一)两相复合材料
- vs2013 C# 添加单元测试功能
- Spring MVC 系列(四)——Spring MVC 与Ajax交互及重定向操作
- python程序打包(py2exe, pyinstaller, cxfreeze)
- Java 解压rar 解压缩zip
- ARM A35 A53
- JNI 实战全面解析
- 初识Hadoop
- 踏上新的征程
- 全局变量与局部变量的区别
- 空指针异常,java.lang.NullPointerException,判断是否为空