SpringMVC Controller 返回值的可选类型详解

网友投稿 427 2023-05-18


SpringMVC Controller 返回值的可选类型详解

spring mvc 支持如下的返回方式:ModelAndView, Model, ModelMap, Map,View, String, void。

ModelAndView

@RequestMapping("/hello")

public ModelAndView helloWorld() {

String message = "Hello World, Spring 3.x!";

return new ModelAndView("hello", "message", message);

}

通过ModelAndView构造方法可以指定返回的页面名称,也可以通过setViewName()方法跳转到指定的页面

Map

@RequestMapping("/demo2/show")

public Map getMap() {

Map map = new HashMap();

map.put("key1", "value-1");

map.put("key2", "value-2");

return map;

}

在jsp页面中可直通过${key1}获得到值, map.put()相当于request.setAttribute方法。

View

可以返回pdf excel等,暂时没详细了解。

String

指定返回的视图页面名称,结合设置的返回地址路径加上页面名称后缀即可访问到。

注意:如果方法声明了注解@ResponseBody ,则会直接将返回值输出到页面。

@RequestMapping(value="/showdog")

public String hello1(){

return "hello";

}

@RequestMapping(value="/print")

@ResponseBody

public String print(){

String message = "Hello World, Spring MVC!";

return message;

}

返回json的例子(使用Jackson):

@RequestMapping("/load1")

@ResponseBody

public String load1(@RequestParam String name,@RequestParam String password) throws IOException{

System.out.println(name+" : "+password);

//return name+" : "+password;

MyDog dog=new MyDog();

dog.setName("小哈");dmBfjyVWog.setAge("1岁");dog.setColor("深灰");

ObjectMapper objectMapper = new ObjectMapper();

String jsonString=objectMapper.writeValueAsString(dog);

System.out.println(jsonString);

return jsonString;

}

void

如果返回值为空,则响应的视图页面对应为访问地址

@RequestMapping("/index")

public void index() {

return;

}

对应的逻辑视图名为"index"

小结:

1.使用 String 作为请求处理方法的返回值类型是比较通用的方法,这样返回的逻辑视图名不会和请求 URL 绑定,具有很大的灵活性,而模型数据又可以通mBfjyVW过 ModelMap 控制。

2.使用void,map,Model 时,返回对应的逻辑视图名称真实url为:prefix前缀+视图名称 +suffix后缀组成。

3.使用String,ModelAndView返回视图名称可以不受请求的url绑定,ModelAndView可以设置返回的视图名称。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java 操作Properties配置文件详解
下一篇:Java IO流 文件的编码实例代码
相关文章

 发表评论

暂时没有评论,来抢沙发吧~