Spring MVC 参数传递和JSON数据处理

参数传递

ModelAndView传递

  • 编写controller

    复制代码
    @Controller
    @RequestMapping("/account")
    public class AccountController {
    ​
        //也可以不创建ModelAndView,直接在参数中指定
        @RequestMapping(value = "/findAccount9")
        public ModelAndView findAccount9(ModelAndView mv) {
            mv.addObject("msg", "欢迎你 springmvc");
            mv.setViewName("success");
            return mv;
        }
    }
  • 在index.jsp里面定义超链接

    复制代码
    <a href="/account/findAccount9">ModelAndView参数传递</a>

Model传递

  • 编写controller

    复制代码
    @Controller
    @RequestMapping("/account")
    public class AccountController {
    ​
        @RequestMapping(value = "/findAccount10")
        public String findAccount10(Model model) {
            model.addAttribute("msg", "欢迎你 springmvc");
            return "success";
        }
    }
  • 在index.jsp里面定义超链接

    复制代码
    <a href="/account/findAccount10">Model参数传递</a>

ServletAPI传递

  • 编写controller

    复制代码
    @Controller
    @RequestMapping("/account")
    public class AccountController {
    ​
        @RequestMapping("/findAccount11")
        public String findAccount11(HttpServletRequest request, 
                                    HttpServletResponse response){
            request.setAttribute("msg","欢迎你 springmvc");
            return "success";
        }
    }
  • 在index.jsp里面定义超链接

    复制代码
    <a href="/account/findAccount11">ServletAPI传递</a>

JSON数据处理

添加json依赖

springmvc 默认使用jackson作为json类库,不需要修改applicationContext-servlet.xml任何配置,只需引入以下类库springmvc就可以处理json数据:

复制代码
<!--spring-json依赖-->
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.9.0</version>
</dependency>

注解

  • @RequestBody:作用是接收前端ajax传递给后端的json字符串,并将json格式的数据转为java对象

  • @ResponseBody:作用是将java对象转为json格式的数据传递给前台ajax

案例

  • 编写controller

    复制代码
    @Controller
    @RequestMapping("/account")
    public class AccountController {
    ​
        @RequestMapping("/saveAccount2")
        @ResponseBody
        public Map saveAccount2(@RequestBody Account account){
            Map<String, Object> map = new HashMap<String, Object>();
            map.put("status",200);
            map.put("msg",account);
            return map;
        }
    }
  • 在index.jsp里面定义ajax请求

    • 添加按钮

      复制代码
      <input type="button" value="测试ajax请求json和响应json" id="testJson"/>
    • 引入js库文件

      复制代码
      <script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script>
    • 编写ajax代码

      复制代码
        <script type="text/javascript">
          $(function(){
            $("#testJson").click(function(){
              $.ajax({
                type:"post",
                url:"/account/saveAccount2",
                contentType:"application/json;charset=UTF-8",
                data:'{"id":1,"name":"张二狗","money":999.0}',
                success:function(data){
                  if(data.status == 200){
                    alert(data.msg.name);
                    alert(data.msg.money);
                  }
                }
              })
            });
          })
        </script>
  • 测试

相关推荐
野生的码农8 小时前
码农的妇产科实习记录
android·java·人工智能
毕设源码-赖学姐9 小时前
【开题答辩全过程】以 高校人才培养方案管理系统的设计与实现为例,包含答辩的问题和答案
java
一起努力啊~9 小时前
算法刷题-二分查找
java·数据结构·算法
小途软件9 小时前
高校宿舍访客预约管理平台开发
java·人工智能·pytorch·python·深度学习·语言模型
J_liaty9 小时前
Java版本演进:从JDK 8到JDK 21的特性革命与对比分析
java·开发语言·jdk
+VX:Fegn089510 小时前
计算机毕业设计|基于springboot + vue律师咨询系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端·课程设计
daidaidaiyu10 小时前
一文学习和实践 当下互联网安全的基石 - TLS 和 SSL
java·netty
hssfscv10 小时前
Javaweb学习笔记——后端实战2_部门管理
java·笔记·学习
NE_STOP10 小时前
认识shiro
java
kong790692810 小时前
Java基础-Lambda表达式、Java链式编程
java·开发语言·lambda表达式