SpringMVC五種類型參數(shù)傳遞及json傳遞參數(shù)
學(xué)習(xí)內(nèi)容:
1.普通參數(shù)
2.pojo參數(shù)
3.嵌套pojo
4.數(shù)組參數(shù)
5.集合參數(shù)
6.解決中文亂碼
7.json數(shù)據(jù)傳遞參數(shù)
案例分析:
1.pom.xml
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ? ? ? ? ?xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> ? <modelVersion>4.0.0</modelVersion> ? <groupId>org.example</groupId> ? <artifactId>SpringMVC-Demo1</artifactId> ? <version>1.0-SNAPSHOT</version> ? <packaging>war</packaging> ? <dependencies> ? ? <dependency> ? ? ? <groupId>org.springframework</groupId> ? ? ? <artifactId>spring-webmvc</artifactId> ? ? ? <version>5.2.22.RELEASE</version> ? ? </dependency> ? ? <dependency> ? ? ? <groupId>javax.servlet</groupId> ? ? ? <artifactId>javax.servlet-api</artifactId> ? ? ? <version>4.0.1</version> ? ? ? <scope>provided</scope> ? ? </dependency> ? ? ?<dependency> ? ? ? <groupId>com.fasterxml.jackson.core</groupId> ? ? ? <artifactId>jackson-databind</artifactId> ? ? ? <version>2.13.3</version> ? ? </dependency> ? </dependencies> </project>
2.ServletContainersInitConfig
package com.study.config;
import org.springframework.web.filter.CharacterEncodingFilter;
import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;
import javax.servlet.Filter;
public class ServletContainersInitConfig extends AbstractAnnotationConfigDispatcherServletInitializer {
? ? @Override
? ? protected Class<?>[] getRootConfigClasses() {
? ? ? ? return new Class[0];
? ? }
? ? @Override
? ? protected Class<?>[] getServletConfigClasses() {
? ? ? ? return new Class[]{SpringMvcConfig.class};
? ? }
? ? @Override
? ? protected String[] getServletMappings() {
? ? ? ? return new String[]{"/"};
? ? }
? ? @Override
? ? protected Filter[] getServletFilters() {
? ? ? ? CharacterEncodingFilter filter = new CharacterEncodingFilter();
? ? ? ? filter.setEncoding("UTF-8");
? ? ? ? return new Filter[]{filter};
? ? }
}
/*
public class ServletContainersInitConfig extends AbstractDispatcherServletInitializer {
? ? //加載SpringMVC容器配置
? ? @Override
? ? protected WebApplicationContext createServletApplicationContext() {
? ? ? ? AnnotationConfigWebApplicationContext ctx = new AnnotationConfigWebApplicationContext();
? ? ? ? ctx.register(SpringMvcConfig.class);
? ? ? ? return ctx;
? ? }
? ? //設(shè)置哪些請(qǐng)求可以歸屬SpringMVC處理
? ? @Override
? ? protected String[] getServletMappings() {
? ? ? ? return new String[]{"/"};
? ? }
? ? //加載Spring容器配置
? ? @Override
? ? protected WebApplicationContext createRootApplicationContext() {
? ? ? ? AnnotationConfigWebApplicationContext ctx = new AnnotationConfigWebApplicationContext();
? ? ? ? ctx.register(SpringConfig.class);
? ? ? ? return ctx;
? ? }
}*/3.SpringMvcConfig
package com.study.config;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
@Configuration
@ComponentScan("com.study.controller")
public class SpringMvcConfig {
}4.UserController
package com.study.controller;
import com.study.domain.User;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.Arrays;
import java.util.List;
@Controller
public class UserController {
? ? //1.普通參數(shù)傳遞
? ? @RequestMapping("/commonParam")
? ? @ResponseBody
? ? public String commonParam(String name,int age){
? ? ? ? System.out.println("普通參數(shù)傳遞name:"+name);
? ? ? ? System.out.println("普通參數(shù)傳遞age:"+age);
? ? ? ? return "'module':'common param'";
? ? ? ? //http://localhost:8080/SpringMVC_Demo3/commonParam?name=tom&age=13 ?普通參數(shù)傳遞name:jack ?普通參數(shù)傳遞age:13
? ? }
? ? //2.pojo參數(shù)傳遞
? ? @RequestMapping("/pojo")
? ? @ResponseBody
? ? public String pojoParam(User user){
? ? ? ? System.out.println("pojo參數(shù)傳遞user:"+user);
? ? ? ? return "'module':'pojo.....'";
? ? ? ? //http://localhost:8080/SpringMVC_Demo3/pojo?name=%E5%B0%8F%E9%A3%9E%E4%BE%A0&age=13
? ? ?//pojo參數(shù)傳遞user:User{name='小飛俠', age=13}
? ? }
? ? // 3.嵌套pojo參數(shù)
? ? @RequestMapping("/pojos")
? ? @ResponseBody
? ? public String pojosParam(User user){
? ? ? ? System.out.println("pojos參數(shù)傳遞user:"+user);
? ? ? ? return "'module':'pojos.....'";
? ? ? ? //http://localhost:8080/SpringMVC_Demo3/pojos?name=%E5%B0%8F%E9%A9%AC%E5%93%A5&age=13&address.province=%E6%B2%B3%E5%8D%97&address.city=%E5%95%86%E4%B8%98
? ? ? ? //pojo參數(shù)傳遞user:User{name='小馬哥', age=13, address=Address{province='河南', city='商丘'}}
? ? }
? ? //4.數(shù)組參數(shù)傳遞
? ? @RequestMapping("/arr")
? ? @ResponseBody
? ? public String array(String [] arr){
? ? ? ? System.out.println("數(shù)組參數(shù)傳遞arr:"+ Arrays.toString(arr));
? ? ? ? return "'module':'array.....'";
? ? ? ? //http://localhost:8080/SpringMVC_Demo3/arr?arr=1&arr=2&arr=3
? ? ? ? //數(shù)組參數(shù)傳遞arr:[1, 2, 3]
? ? }
? ? //5.集合參數(shù)
? ? @RequestMapping("/coll")
? ? @ResponseBody
? ? public String collection(@RequestParam List<String> colls){
? ? ? ? System.out.println("集合參數(shù)傳遞colls:"+colls);
? ? ? ? return "'module':'collection.....'";
? ? ? ? //http://localhost:8080/SpringMVC_Demo3/coll?colls=1&colls=2&colls=3
? ? ? ? //集合參數(shù)傳遞colls:[1, 2, 3]
? ? }
? ? ?//6.pojo參數(shù):json格式
? ? @RequestMapping("/json")
? ? @ResponseBody
? ? public String json(User user) throws JsonProcessingException {
? ? ? ? ObjectMapper objectMapper = new ObjectMapper();
? ? ? ? String json = objectMapper.writeValueAsString(user);
? ? ? ? System.out.println(json);
? ? ? ? return "'module':'json.....'";
? ? ? ? //http://localhost:8080/SpringMVC_Demo3/json?name=小馬哥&age=23&address.province=河南&address.city=商丘
? ? ? ? //{"name":"小馬哥","age":23,"address":{"province":"河南","city":"商丘"}}
? ? }
}5.Address
package com.study.domain;
public class Address {
? ? private String province;
? ? private String city;
? ? public String getProvince() {
? ? ? ? return province;
? ? }
? ? public void setProvince(String province) {
? ? ? ? this.province = province;
? ? }
? ? public String getCity() {
? ? ? ? return city;
? ? }
? ? public void setCity(String city) {
? ? ? ? this.city = city;
? ? }
? ? @Override
? ? public String toString() {
? ? ? ? return "Address{" +
? ? ? ? ? ? ? ? "province='" + province + '\'' +
? ? ? ? ? ? ? ? ", city='" + city + '\'' +
? ? ? ? ? ? ? ? '}';
? ? }
}6.User
package com.study.domain;
public class User {
? ? private String name;
? ? private int age;
? ? private Address address;
? ? public Address getAddress() {
? ? ? ? return address;
? ? }
? ? public void setAddress(Address address) {
? ? ? ? this.address = address;
? ? }
? ? public String getName() {
? ? ? ? return name;
? ? }
? ? public void setName(String name) {
? ? ? ? this.name = name;
? ? }
? ? public int getAge() {
? ? ? ? return age;
? ? }
? ? public void setAge(int age) {
? ? ? ? this.age = age;
? ? }
? ? @Override
? ? public String toString() {
? ? ? ? return "User{" +
? ? ? ? ? ? ? ? "name='" + name + '\'' +
? ? ? ? ? ? ? ? ", age=" + age +
? ? ? ? ? ? ? ? ", address=" + address +
? ? ? ? ? ? ? ? '}';
? ? }
}到此這篇關(guān)于SpringMVC五種類型參數(shù)傳遞及json傳遞參數(shù)的文章就介紹到這了,更多相關(guān)SpringMVC類型參數(shù)傳遞及json傳遞參數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
springboot的類加載器(org.springframework.boot.loader)過(guò)程詳解
這篇文章主要介紹了springboot的類加載器(org.springframework.boot.loader),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-11-11
Java Socket設(shè)置timeout的幾種常用方式說(shuō)明
這篇文章主要介紹了Java Socket設(shè)置timeout的幾種常用方式說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-11-11
解決使用@ResponseBody后返回500錯(cuò)誤的問(wèn)題
這篇文章主要介紹了解決使用@ResponseBody后返回500錯(cuò)誤的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-09-09

