首页 > 代码库 > SpringMVC的值传递

SpringMVC的值传递

值的传递分为从页面传到到controller和从controller传递到页面,下面分别进行介绍:

  

package com.springmvc.web;import java.util.Map;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestParam;@Controllerpublic class HelloController {        @RequestMapping("test")    public String test(@RequestParam("username")String username,Map<String, Object> map){        map.put("username", username);        return "test";    }        @RequestMapping({"/hello","/"})    public String hello(String username,Map<String,Object> map){        System.out.println("username==" + username);        map.put("username", username);        map.put("password", "222");        return "hello";    }        @RequestMapping("/welcome")    public String welcome(String username,Model model){        System.err.println("username=" + username);        model.addAttribute("username", username);        model.addAttribute("password", "333333333");        model.addAttribute(username);        return "welcome";    }}

 1.将参数传递给controller

  (1)利用@RequestParam来传递必须要的参数,并且将参数作为url的一部分进行传递。

例如: http://127.0.0.1:8080/Spring_Hello/test?username=zhangsan,这样是可以接受到username的,但是请求的url中,username属性必须存在,否则会报

HTTP Status 400 -   这里,是将参数当成了url的一部分.

  (2)不想将参数作为url的一部分,直接写参数即可,不需要RequestParam   

2.将参数传递给页面

  (1) 在方法参数中放入一个Map<String,Object>,将需要传递给页面的参数以键值对的方式放入。在页面用${key }的方式取得数据。 如例 /hello

    (2) 也可以用spring推荐的方式,用model传递参数 如welcome,其中省略掉key的方式,默认key为value的数据类型。在传递对象类型数据时十分有用。如例 /welcome

  PS: model和map的区别还在于:利用map,参数是可以为空的;如果利用model,第一个参数username是必须要传递的。

 

SpringMVC的值传递