如何让Spring MVC接收的参数可以转换为java对象

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何让Spring MVC接收的参数可以转换为java对象相关的知识,希望对你有一定的参考价值。

参考技术A 只要让参数是某个实体类的属性即可。
比如,我要接收id,name,age,那么可以定义一个实体类Student,它有属性id,name,age,那么在SpringMVC的控制器的方法形参中就可以使用Student
stu来接收参数。
常常用来:将项目中可能使用到的查询条件封装为一个实体类,这样可以很方便接收。

spring mvc接收参数方式,json格式返回请求数据

1 使用方法形参使用变量接收提交的数据

2 在方法的形参中使用模型接收数据

3 如果在提交的表单中有多个数据模型,需要创建一个新的Bean,里面的属性是要接收的对象变量。

4 接收提交的日期字符串,转换成Date类型。需要使用@InitBinder来转换

5 批量删除数据,使用数组接收要删除的id,在页面中使用相同name属性

6 批量提交,如何接收数据?需要新建一个Bean,List或者LinkedList/ArrayList来接收。

7 在两个不同的action方法之间执行转发。在return语句中使用"forward:other URL"

8 在两个不同的action方法之间执行重定向。在return语句中使用"redirect:"

 

二、前端和后端使用json格式传数据

1 开发步骤

1)引入json的jar包

//json包
json\jackson-core-asl-1.9.2.jar
json\jackson-mapper-asl-1.9.2.jar

2)配置json解析类,固定格式,usermvc.xml文件

<!-- 开启扫描 -->
        <context:component-scan base-package="com.huitong.app3"></context:component-scan>
        
        <!-- json 配置 -->
        <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
            <property name="messageConverters">
                <list>
                    <bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"></bean>
                </list>
            </property>
        </bean>

 

3)useraction控制器类中处理函数编写

package com.huitong.app3;

import java.util.Date;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
@RequestMapping(value="/user")
public class UserAction {
    
    @RequestMapping(value="/getbean")
    public @ResponseBody User getUser(Model model) throws Exception{
        User user = new User();
        user.setId(1);
        user.setName("中国");
        user.setHiretime(new Date());
        
        System.out.println(user);
        
        return user;
    }

}

4)前端显示页面,jsontest.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    
    <title>My JSP jsontest.jsp starting page</title>
    <script type="text/javascript" src="js/jquery-3.2.1.js"></script>
    

  </head>
  
  <body>
      <div style="width: 600px; height: 400px;">
          <p><button id="btn">bean2json</button></p>
          <p><button id="btn">beanlist2json</button> </p>
          <p><button id="btn">map2json</button> </p>
      
      </div>
  
  </body>
  
  <script type="text/javascript">
      $(function(){
          $("div #btn:first").click(function(){
              var url="${pageContext.request.contextPath}/user/getbean.action";
              var data=null;
              $.post(
                  url,
                  data,
                  function(backdata){
                      var hiretime = new Date(backdata.hiretime);
                      alert(hiretime.getFullYear() + "" + (hiretime.getMonth()+1) + "");
                  }
              );
              
          });
      })
  
  </script>
</html>

 

其他配置和之前说的相同,只是这次是用了注解方式,感觉更加简化了配置。

 

以上是关于如何让Spring MVC接收的参数可以转换为java对象的主要内容,如果未能解决你的问题,请参考以下文章

spring mvc接收参数方式,json格式返回请求数据

ajax提交数据,spring Mvc按照单个参数接收

ajax提交数据,spring Mvc按照单个参数接收

如何让 Spring MVC 读取日期为“2019-3-29”格式的路径参数?

spring mvc json 直接把一个对象转换成json格式输出到jsp页面

spring mvc中如何过滤form提交数据中的空格?