SpringMVC传入参数

测试使用的类:

public class User {

    private String name;// 姓名
    private Integer age;// 年龄
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public Integer getAge() {
        return age;
    }
    public void setAge(Integer age) {
        this.age = age;
    }
    @Override
    public String toString() {
        return "User [name=" + name + ", age=" + age + "]";
    }
    public User(String name, Integer age) {
        super();
        this.name = name;
        this.age = age;
    }
    public User() {
        super();
    }


}
//用户的加强类
public class UserDto {
private User user;//用户对象
public User getUser() {
    return user;
}
public void setUser(User user) {
    this.user = user;
}
private List<UserScore> list;//参赛项目和得分
public List<UserScore> getList() {
    return list;
}
public void setList(List<UserScore> list) {
    this.list = list;
}
@Override
public String toString() {
    return "UserDto [user=" + user + ", list=" + list + "]";
}
public UserDto(User user, List<UserScore> list) {
    super();
    this.user = user;
    this.list = list;
}
public UserDto() {
    super();
}



}

public class UserScore {
    private String competitionName;//比赛科目
    private Float score;//成绩
    public String getCompetitionName() {
        return competitionName;
    }
    public void setCompetitionName(String competitionName) {
        this.competitionName = competitionName;
    }
    public Float getScore() {
        return score;
    }
    public void setScore(Float score) {
        this.score = score;
    }
    @Override
    public String toString() {
        return "UserScore [competitionName=" + competitionName + ", score=" + score + "]";
    }
    public UserScore(String competitionName, Float score) {
        super();
        this.competitionName = competitionName;
        this.score = score;
    }
    public UserScore() {
        super();
    }

}

1.URI 模板模式映射

@RequestMapping("/user")
public class UserController{
    //页面请求  
    //http://localhost:8080/springmvc/user/queryUser1/12
    @RequestMapping(value="/queryUser1/{id}",method=RequestMethod.GET)
    //分析:参数id在url中传递,传给id,method=RequestMethod.GET   url请求必须为get方法
    public void queryUser1(@PathVariable String id) {
        System.out.println("id:"+id);
        //结果:  id:12
    }

2参数传递的是user 的属性名
页面

<form action="${pageContext.request.contextPath }/user/queryUser2" method="post">
    姓名:<input name="name" value=""/>
    <br/>
    年龄:<input name="age" value=""/>
    <br/>
    <input type="submit" value="提交 "/> 
    </form>

controller

    @RequestMapping("/queryUser2")
    public void queryUser2(User user) {
        System.out.println(user);
        //结果 User [name=aaa, age=12]
    }

3参数传递的是user.属性名,需要设置一个userDto对象,其中有个属性是user
页面

<form action="${pageContext.request.contextPath }/user/queryUser3" method="post">
    姓名:<input name="user.name" value=""/>
    <br/>
    年龄:<input name="user.age" value=""/>
    <br/>
    <input type="submit" value="提交 "/> 
    </form>

controller

    @RequestMapping("/queryUser3")
    public void queryUser3(UserDto userDto ) {
        System.out.println(userDto.getUser());
        //结果 User [name=ww, age=33]
    }

4数组传参
对页面相同name,传过来是就是一个数组,这里以checkbox为例
页面

//

<form action="delete">
    <table width="">
    <tr >
    <td>选择</td>
    <td>path</td>
    <td>姓名</td>
    <td>年龄</td>
    </tr>

    <tr>
    <td><input type="checkbox" name="deleteId" value="奥巴马1"/></td>
    <td>/springmvc</td>
    <td>奥巴马1</td>
    <td>45</td>
    </tr>

    <tr>
    <td><input type="checkbox" name="deleteId" value="奥巴马2"/></td>
    <td>/springmvc</td>
    <td>奥巴马2</td>
    <td>45</td>
    </tr>

    <tr>
    <td><input type="checkbox" name="deleteId" value="奥巴马3"/></td>
    <td>/springmvc</td>
    <td>奥巴马3</td>
    <td>45</td>
    </tr>

    <tr><td><input type="submit" value="批量删除 "/></td> </tr>
    </table>
    </form>

controller

    @RequestMapping("/delete")
    //String[] deleteId 设置多个String【】传参
    public void delete(String[] deleteId) {
        for (String string : deleteId) {
            System.out.print(string+"   ");
        }
    }
    输出:"奥巴马1 "奥巴马2 "奥巴马3

5.list 集合传参
页面

<form action="${pageContext.request.contextPath }/user/list" method="post">
    <br/>
    姓名:<input name="name" value="董大鹏"/>
    <br/>
    年龄:<input name="user.age" value="12"/>
    <br/>


    课程名:<input type="text"name="list[0].competitionName" value="游泳"/>分数:<input type="text"name="list[0].score" value="50"/><br/>
    课程名:<input type="text"name="list[1].competitionName" value="攀岩"/>分数:<input type="text"name="list[1].score" value="70"/><br/>
    课程名:<input type="text"name="list[2].competitionName" value="羽毛球"/>分数:<input type="text"name="list[2].score" value="90"/><br/> 

    <input type="submit" value="提交 "/> 
    </form>

controller

@RequestMapping("/list")
        //设置页面传参方式      属性名|字符串,list集合,对象.属性名
        public void list(User user,UserDto userDto,String name) {
            System.out.println(user );//获取ID
            System.out.println(userDto);
            System.out.println(name);
            //结果
            //User [name=董大鹏, age=null]
            //UserDto [user=User [name=null, age=12], list=[UserScore [competitionName=游泳, score=50.0], UserScore [competitionName=攀岩, score=70.0], UserScore [competitionName=羽毛球, score=90.0]]]
            //董大鹏
        }

6.@RequestParam绑定单个请求参数

    @RequestMapping("queryUser4")
    //@RequestParam(value="id",defaultValue="34", required=true
    //value="id" 请求的参数名字为id
    //required=true 表示请求中一定要有相应的参数,否则将报400错误码;
    //defaultValue="34" 表示如果请求没有id这个参数是,设置默认请求参数为id=34
    //String Userid   用Userid来接收id


    public void queryUser4(Model model,@RequestParam(value="id",defaultValue="34", required=true)String Userid,UserDto userDto) {
        System.out.println("groupid:"+Userid);
        //页面请求  http://localhost:8080/springmvc/user/queryUser4
        //结果   groupid:34

        //页面请求 http://localhost:8080/springmvc/user/queryUser4?id=10
        //结果  groupid:10


    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值