SpringMVC学习(四):通过实体类型的形参获取请求参数(以及 通过POJO获取)

在SpringMVC中不需要用原生的servletAPI来获取参数了,这会大大简化我们的代码。

文档结构:

SpringMVC学习(四):通过实体类型的形参获取请求参数(以及 通过POJO获取)_第1张图片

 

web.xml:





    //配置编码过滤器
    
        CharacterEncodingFilter
        org.springframework.web.filter.CharacterEncodingFilter
        
            encoding
            UTF-8
        
        
            forceResponseEncoding
            true
        
    
    
        CharacterEncodingFilter
        /*
    

    //配置springMVC的前端控制器DispatcherServlet
    
        DispatcherServlet
        org.springframework.web.servlet.DispatcherServlet
        
            contextConfigLocation
            classpath:springMVC.xml
        
        1
    
    
        DispatcherServlet
        /
    
    

springMVC.xml:




    

    
    
        
        
        
            
                
                    

                        
                        

                        
                        
                        
                        
                    
                
            
        
    

 index.html:




    
    Title



    

首页


走到首页
测试路径中占位符-->/testRest
测试-->/test
测试请求参数-->param
测试请求参数-->param

success.html:




    
    Title



    success


User.java:

package demo.bean;

public class User {

    private Integer id;
    private String username;
    private String password;
    private Integer age;
    private String sex;
    private String email;

    public User() {
    }

    public User(Integer id, String username, String password, Integer age, String sex, String email) {
        this.id = id;
        this.username = username;
        this.password = password;
        this.age = age;
        this.sex = sex;
        this.email = email;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", username='" + username + '\'' +
                ", password='" + password + '\'' +
                ", age=" + age +
                ", sex='" + sex + '\'' +
                ", email='" + email + '\'' +
                '}';
    }
}

TestController.java:

package demo.controller;

import demo.bean.User;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class TestController {

    @RequestMapping(value = "/")
    public String index(){
        return "index";
    }

    @RequestMapping(value = "/test")
    public String test(){
        return "success";
    }

    @RequestMapping(value = "/testRest/{id}/{username}")
    public String testRest(@PathVariable("id") String id,@PathVariable("username") String username){
        System.out.println("id:"+id+" username:"+username);
        return "success";
    }

    @RequestMapping(value = "/param")
    public String test_param(String username,String password){
        System.out.println("username:"+username+" password:"+password);
        return "success";
    }

   
}

运行起来:

SpringMVC学习(四):通过实体类型的形参获取请求参数(以及 通过POJO获取)_第2张图片

点击最下面的超链接:

SpringMVC学习(四):通过实体类型的形参获取请求参数(以及 通过POJO获取)_第3张图片

跳转成功。再看看控制台:

和html文件中传的参数一致

SpringMVC学习(四):通过实体类型的形参获取请求参数(以及 通过POJO获取)_第4张图片

这样就完成了通过实体类型的形参获取请求参数

但是还有一个小优化

SpringMVC学习(四):通过实体类型的形参获取请求参数(以及 通过POJO获取)_第5张图片

如果实体类中的参数很多,那么控制类中的形参也会相应地增多,那么为了减少代码量,我们可以通过pojo获取请求参数 

在index.html中加写一个form表单,传比较多的参数:

用户名:
密码:
性别:
年龄:
邮箱:

 给控制类中传入的形参改为类:

@RequestMapping(value = "/testpojo")
    public String testpojo(User user){
        System.out.println(user);
        return "success";
    }

运行起来

SpringMVC学习(四):通过实体类型的形参获取请求参数(以及 通过POJO获取)_第6张图片

将表单填写完整,点击按钮

SpringMVC学习(四):通过实体类型的形参获取请求参数(以及 通过POJO获取)_第7张图片跳转成功,浏览器已经得到了参数。再看看控制台

 获取到了参数

这样可以减少我们传参时的代码量

你可能感兴趣的:(java,java,tomcat,maven,intellij-idea,springmvc)