SpingMVC Model 和ModelAndView,以及从参数的设置和接收

方法返回的类型是String,必须用Model

@RequestMapping("/hello")
public String hello(Model model)
{

    //相当于request.setAttribute
    model.addAttribute("message","hello,my first spring mvc 000~ model ~~~~");
    return "hello";//执行完hello方法后会跳转到hello.jsp  由前缀路径,+后缀.jsp拼接而成
}

 

方法返回类型ModelAndView

@RequestMapping("/hello2")
public ModelAndView hello2()
{
    ModelAndView modelAndView = new ModelAndView();
    modelAndView.addObject("message", "hello2,modelAndView springmvc");
    modelAndView.setViewName("hello2");
    return  modelAndView;

}

setViewName方法可以直接指定jsp页面的路径,这里的地址前缀和后缀已经在spring-mvc.xml文件中定义好了,可直接简写modelAndView.setViewName("hello2");。如未定义前后缀可以使用 modelAndView.setViewName("/WEB-INF/views/hello2.jsp");或者new ModelAndView("/WEB-INF/views/hello2.jsp");完整的路径进行传入

这里的路径默认是转发的形式,如果要重定向,可以使用new ModelAndView("redirect:hello2");或者 modelAndView.setViewName("redirect:hello2");

 

接收页面参数,可以用@RequestParam("paramName") 来获取。如下就可以获取页面的name以及passWord

@RequestMapping("/login")//web.xml配置拦截"*.do"时,此处映射的/login.do可以省略为/login  Spring底层实现的
public String login(@RequestParam("name")String name, @RequestParam("passWord") String passWord, Model model)
{
    Map map = new HashMap();
    map.put(null,"aaa");
    System.out.println(map);
    model.addAttribute("name",name);
    return "success";
}

 

如果提交的页面参数过多,可以直接用对象的形式接收,此时对象是被组装好参数的对象

@RequestMapping("/login2")
public String login2(User user,Model model)
{
    String name = user.getName();
    System.out.println(name);
    model.addAttribute("name",name);
    return "success";
}
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值