SpringMvc-第一天第二部分

这篇博客详细介绍了SpringMvc中的URL映射配置,包括类和方法级别的@RequestMapping注解。同时,讲解了各种参数绑定方式,如基本类型、数组、VO、List、Set和Map。此外,还讨论了请求转发与重定向的实现。最后,文章探讨了SpringMvc支持Json数据开发的基本概念,包括@ResponseBody和@RequestBody注解的使用,并提供了配置指南。
摘要由CSDN通过智能技术生成

URL地址映射配置 & 参数绑定

URL 映射地址配置之@RequestMapping

在类前面定义,则将url和类绑定,在方法前面定义,则将url和类的方法绑定

//url: http://localhost:8080/springmvc01/hello2/test01.do

@RequestMapping("test01")

public ModelAndView test01(){
   

  ModelAndView mv=new ModelAndView();

  mv.setViewName("hello");

  mv.addObject("hello", "hello test01");

  return mv;

}

//url: http://localhost:8080/springmvc01/hello2.do?test02

@RequestMapping(params="test02")

public ModelAndView test02(){
   

  ModelAndView mv=new ModelAndView();

  mv.setViewName("hello");

  mv.addObject("hello", "hello test02");

  return mv;

}

//url: http://localhost:8080/springmvc01/hello2/test03.do

@RequestMapping("test03")

public String test03(Model model){
   

  model.addAttribute("hello", "hello test03");

  return "hello";

}

//url: http://localhost:8080/springmvc01/hello2/test04.do

@RequestMapping("test04")

public String test04(ModelMap modelMap){
   

  modelMap.addAttribute("hello", "hello test04");

  return "hello";

}

//url: http://localhost:8080/springmvc01/hello2/test05.do

@SuppressWarnings("unchecked")

@RequestMapping("test05")

public String test05(Map model){
   

  model.put("hello", "hello test05 ");
  return "hello";
}

参数绑定

请求参数到处理器功能处理方法的方法参数上的绑定,对于参数绑定非常灵活

基本数据类型、字符串数据绑定
/**
 * 简单数据类型 值必须存在  不传可以通过默认值代替
 */
@RequestMapping("data1")
public void data1(@RequestParam(defaultValue="10",name="age")int age,
        @RequestParam(defaultValue="1",name="flag")boolean flag,
        @RequestParam(defaultValue="100",name="s")double s){
   
    System.err.println("age:"+age+":flag:"+flag+":s:"+s);
}

/**
 * 包装类型  值可以为空
 */
@RequestMapping("data2")
public void data2(Integer age,Double s){
   
    System.err.println("age:"+age+":s:"+s);
}


/**
 * 字符串注入
 * @param str
 */
@RequestMapping("data3")
public void data3(String str){
   
    System.err.println("str:"+str);
}

数组类型
@RequestMapping("/dataTest3")
public void getParamsData3(@RequestParam(value="ids")String[] ids){
   
    for(String id:ids){
   
        System.out.println(id+"---");
    }
}
vo 类型
@RequestMapping("/dataTest4")
public void getParamsData4(User user){
   
    System.out.println(user);
}
list 类型

此时user 实体需要定义list 属性

public class User {
   
    private int id;
    private String userName;
    private String userPwd;
    
    private List<Phone> phones=new ArrayList<Phone>();

  
    public List<Phone> getPhones() {
   
        return phones;
    }
    public void setPhones(List<Phone> phones) {
   
        this.phones = phones;
    }
    public int getId() {
   
        return id;
    }
    public void setId(int id) {
   
        this.id = id;
    }
    public String getUserName
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值