Spring MVC POJO传参方式

有两POJO类

Address.java

 1 package com.proc;
 2
 3 public class Address {
 4
 5     private String province;
 6     private String city;
 7     public String getProvince() {
 8         return province;
 9     }
10     public void setProvince(String province) {
11         this.province = province;
12     }
13     public String getCity() {
14         return city;
15     }
16     public void setCity(String city) {
17         this.city = city;
18     }
19     @Override
20     public String toString() {
21         return "Address [province=" + province + ", city=" + city + "]";
22     }
23 }

User.java

 1 package com.proc;
 2
 3 public class User {
 4
 5     private String username;
 6     private String password;
 7     private String gender;
 8     private String hobby;
 9     private Address address;
10     public String getUsername() {
11         return username;
12     }
13     public void setUsername(String username) {
14         this.username = username;
15     }
16     public String getPassword() {
17         return password;
18     }
19     public void setPassword(String password) {
20         this.password = password;
21     }
22     public String getGender() {
23         return gender;
24     }
25     public void setGender(String gender) {
26         this.gender = gender;
27     }
28     public String getHobby() {
29         return hobby;
30     }
31     public void setHobby(String hobby) {
32         this.hobby = hobby;
33     }
34     public Address getAddress() {
35         return address;
36     }
37     public void setAddress(Address address) {
38         this.address = address;
39     }
40     @Override
41     public String toString() {
42         return "User [username=" + username + ", password=" + password
43                 + ", gender=" + gender + ", hobby=" + hobby + ", address="
44                 + address + "]";
45     }
46 }

JSP页面

 1 <%@ page language="java" import="java.util.*" pageEncoding="utf-8" contentType="text/html; charset=utf-8"%>
 2
 3 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 4 <html>
 5   <head>
 6
 7   </head>
 8
 9   <body>
10     <form action="testPOJO" method="post">
11     <table>
12         <tr>
13             <td>用户名:</td><td><input type="text" name="username"/></td>
14         </tr>
15         <tr>
16             <td>密码:</td><td><input type="password" name="password"/></td>
17         </tr>
18         <tr>
19             <td>性别:</td>
20             <td>
21                 <input type="radio" checked="checked" name="gender" value="male"/>男
22                    <input type="radio" name="gender" value="female"/>女
23                </td>
24         </tr>
25         <tr>
26             <td>爱好:</td>
27             <td>
28                 <input type="checkbox" name="hobby" value="tv">看电视
29                 <input type="checkbox" name="hobby" value="ball">打球
30                 <input type="checkbox" name="hobby" value="swimming">游泳
31             </td>
32         </tr>
33         <tr>
34             <td>省:</td><td><input type="text" name="address.province"/></td>
35         </tr>
36         <tr>
37             <td>市:</td><td><input type="text" name="address.city"/></td>
38         </tr>
39         <tr>
40             <td></td><td><input type="submit" value="提交"></td>
41         </tr>
42
43        </table>
44
45     </form>
46   </body>
47 </html>

控制器类:

 1 package com.proc;
 2
 3 import org.springframework.stereotype.Controller;
 4 import org.springframework.web.bind.annotation.RequestMapping;
 5
 6 @Controller
 7 public class Test {
 8
 9     @RequestMapping("/testPOJO")
10     public String testPOJO(User user){
11         System.out.println(user);
12         return "hello";
13     }
14
15 }

测试:

1、进入jsp页面:

2、点击提交后,控制台输出

User [username=caoyc, password=123456, gender=male, hobby=tv,swimming, address=Address [province=sichuan, city=chengdu]]

【总结】:这里对应address属性使用的是级联属性

POJO注入数组属性

  上面我们看到hobby是一个多选项。那么可以将hobby设为一个String[]类型的数组。设置后我们再次

1 @RequestMapping("/testPOJO")
2 public String testPOJO(User user){
3     System.out.println(user);
4     System.out.println(Arrays.toString(user.getHobby()));
5     return "hello";
6 }

  输出结果:

1 User [username=caoyc, password=123456, gender=male, hobby=[Ljava.lang.String;@c3d34, address=Address [province=sichuan, city=chengdu]]
2 [tv, swimming]

上面如果输入中文。会出现中文乱码情况

时间: 2024-10-07 00:23:11

Spring MVC POJO传参方式的相关文章

Spring MVC POJO入参过程分析

SpringMVC确定目标方法POJO类型的入参过程 1.确认一个key: (1).若目标方法的POJO类型的参数没有使用@ModelAttribute作为修饰,则key为POJO类名第一个字母的小写 (2).若使用@ModelAttribute来修饰,则key为@ModelAttibute注解的value属性值. 1 @RequestMapping("/updateUser") 2 public String update(User user){ 这里没有使用@ModelAttrib

java - spring mvc 之传参@RequestParam @RequestBody @Pathvariable @RequestHeader注解

1. @PathVariable 当使用@RequestMapping URI template 样式映射时, 即 someUrl/{paramId}, 这时的paramId可通过 @Pathvariable注解绑定它传过来的值到方法的参数上. 示例代码: @Controller @RequestMapping("/owners/{ownerId}") public class RelativePathUriTemplateController { @RequestMapping(&q

spring mvc 重定向传参

参考链接如下: http://bbs.csdn.net/topics/391034118?page=1 自己的示例程序: 详细页面提交一个修改动作,修改完成后跳转到检索页面. 本地controller 1 private static final String SEARCH_PAGE = "redirect:/list/search.do"; 2 3 @RequestMapping(value = "/update", method=RequestMethod.PO

解决:SpringCloud中Feign支持GET请求POJO传参

在日常的开发中,当遇到一个请求需要传递多个参数时,我们习惯将参数封装到一个POJO对象中,已提高程序的可读性和简化编写.但是在使用SpringCloud时,Feign对SpringMVC注解支持并不完善,其中一点就是,当发送的GET请求携带多个参数时,不能使用POJO来封装参数,这个就比较蛋疼了.一种使之支持GET请求POJO传递参数的方法如下: 添加Maven依赖 <dependency> <groupId>org.springframework.cloud</groupI

Spring MVC 中采用注解方式 Action中跳转到另一个Action的写法

Spring MVC 中采用注解方式 Action中跳转到另一个Action的写法 在Action中方法的返回值都是字符串行,一般情况是返回某个JSP,如: return "xx":意思是返回到某个JSP页面上 如果想在此Action中跳转到另一个Action中怎样做呢? return "redirect://.do?" 例如: @RequestMapping(params = "action=delete") public String del

java 传参方式--值传递还是引用传递

java 传参方式--值传递还是引用传递 参数是按值而不是按引用传递的说明 Java 应用程序有且仅有的一种参数传递机制,即按值传递.写它是为了揭穿普遍存在的一种神话,即认为 Java 应用程序按引用传递参数,以避免因依赖“按引用传递”这一行为而导致的常见编程错误. 对此节选的某些反馈意见认为,我把这一问题搞糊涂了,或者将它完全搞错了.许多不同意我的读者用 C++ 语言作为例子.因此,在此栏目中我将使用 C++ 和 Java 应用程序进一步阐明一些事实. 要点 读完所有的评论以后,问题终于明白了

Javaweb的七大传参方式和以及各自特点

学习jsp一段时间,觉得还是需要把自己学习一些东西整理了一下,第一次发东西,还请各位多多支持 1.表单提交 html自带的from方法,简单易懂,便于操作,依靠于<from>标签中的type="submit"进行表单传输,或者根据js进行控制提交表单.其中由method属性决定以post或者get方式进行提交. jsp代码: 1 <form id="test" action="testservlet" method="

vue请求中 post get传参方式是不同的哦

我在学习vue,项目中post请求,get请求都用到了,我发现传参方式是不一样的. post请求的例子: checkin (){ this.$http.post('my url',{ mobilePhone:this.phone, password:this.password },{ emulateJSON: true } ).then(function(res){ this.$root.userid=res.data.userid; console.log(this.$root.userid)

Web API中的传参方式

在Restful风格的WebApi的里面,API服务的增删改查,分别对应着Http Method的Get / Post / Delete /Put,下面简单总结了Get / Post /Delete /Put的传参方式 一.Get传参 get设计成传输小数据,而且最好是不修改服务器的数据,所以浏览器一般都在地址栏里面可以看到,数据放在url的QueryString中. (一)简单类型 $(function () { $.ajax({ type: 'get', url:'http://localh