如何让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 读取日期为“2019-3-29”格式的路径参数?