SpringMVC的几种返回方式

package com.boventech.learning.controller;

import java.util.HashMap;
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.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;

import com.boventech.learning.entity.User;

/**
 * MVCReturn
 * @author peng.xia
 *
 */
@Controller
@RequestMapping("/MVCReturn")
public class SpringMVCReturnController {

    @RequestMapping(value="/index1",method=RequestMethod.GET)
    public ModelAndView index(){
        ModelAndView modelAndView = new ModelAndView("/user/index");
        modelAndView.addObject("name", "xxx");
        return modelAndView;
    }
    //对于ModelAndView构造函数可以指定返回页面的名称,也可以通过setViewName方法来设置所需要跳转的页面;

    @RequestMapping(value="/index2",method=RequestMethod.GET)
    public ModelAndView index2(){
        ModelAndView modelAndView = new ModelAndView();
        modelAndView.addObject("name", "xxx");
        modelAndView.setViewName("/user/index");
        return modelAndView;
    }
    //返回的是一个包含模型和视图的ModelAndView对象;

    /**
     * Model一个模型对象,
     * 主要包含spring封装好的model和modelMap,以及java.util.Map,
     * 当没有视图返回的时候视图名称将由requestToViewNameTranslator决定;
     * @return
     */
    @RequestMapping(value="/index3",method=RequestMethod.GET)
    public Map<String, String> index3(){
        Map<String, String> map = new HashMap<String, String>();
        map.put("1", "1");
        //map.put相当于request.setAttribute方法
        return map;
    }
    //响应的view应该也是该请求的view。等同于void返回。

    //返回String
    //通过model进行使用
    @RequestMapping(value="/index4",method = RequestMethod.GET)
    public String index(Model model) {
        String retVal = "user/index";
        User user = new User();
        user.setName("XXX");
        model.addAttribute("user", user);
        return retVal;
    }

    //通过配合@ResponseBody来将内容或者对象作为HTTP响应正文返回(适合做即时校验);
    @RequestMapping(value = "/valid", method = RequestMethod.GET)
    @ResponseBody
    public String valid(@RequestParam(value = "userId", required = false) Integer userId,
            @RequestParam(value = "name") String name) {
        return String.valueOf(true);
    }
    //返回字符串表示一个视图名称,这个时候如果需要在渲染视图的过程中需要模型的话,就可以给处理器添加一个模型参数,然后在方法体往模型添加值就可以了,

    @RequestMapping(method=RequestMethod.GET)
    public void index5(){
        ModelAndView modelAndView = new ModelAndView();
        modelAndView.addObject("xxx", "xxx");
    }
    //返回的结果页面还是:/type
    //这个时候我们一般是将返回结果写在了HttpServletResponse 中了,如果没写的话,
    //spring就会利用RequestToViewNameTranslator 来返回一个对应的视图名称。如果这个时候需要模型的话,处理方法和返回字符串的情况是相同的。

}
时间: 2024-08-11 05:45:46

SpringMVC的几种返回方式的相关文章

SpringMVC实战(三种控制器方式)

1.前言 上篇博客着重说了一下SpringMVC中几种处理映射的方式,这篇博客来说一下SpringMVC中几种经常使用的控制器.  2.经常使用控制器 2.1 ParameterizableViewController(參数控制器) <span style="font-size:18px;"><?xml version="1.0" encoding="UTF-8"? > <beans xmlns="http

springMVC的两种下载方式

1:通过httpServletResponse对象实现下载,觉得LOW的自行跳过 2:有人觉得既然使用的是MVC就要使用spring的方式

django-视图函数的三种返回

三种返回方式为HttpResponse,redirect,和 render. 1 from django.shortcuts import render,redirect,HttpResponse 1.HttpResponse, 直接返回字符串,如: 1 return HttpResponse("<h1>Hello world!</h1>") 此方法可以返回json序列 2.redirect,重定向,如: 1 return redirect("http

springmvc&lt;一&gt;一种资源返回多种形式【ContentNegotiatingViewResolver】

restful服务中一个重要的特性就是一种资源可以有多种表现形式,在springmvc中可以使用ContentNegotiatingViewResolver这个视图解析器来实现这种方式. 描述资源的三种形式     一.使用扩展名 http://localhost:8080/test/user.xml   以xml格式呈现 http://localhost:8080/test/user.json  以json格式呈现 http://localhost:8080/test/user     以默认

转: .NET MVC3 几种返回 JSON 对象的方式和注意事项

.NET MVC3 几种返回 JSON 对象的方式和注意事项 转自:http://blog.csdn.net/xxj_jing/article/details/7382589 引言在用 .NET MVC3 给我们做 WEB 项目带来很大灵活性同时,对刚上手的同学来说有些细微的设置导致的问题让我们相当的“纠结”! 这里要讨论的就是:使用JQuery的 Ajax 请求后“返回”的JSON 数据问题. 相信大多数同学都会遇到过,就是在后台已经拼接好了一(拼接方法比较多,我的博客也有提到过!)串标准的J

接口项目servlet的一种处理方式,将异常返回给调用者【我】

接口项目servlet的一种处理方式,其他层有异常全部网上抛,抛到servlet层,将异常返回给调用者: Servlet层: private void processRequest(HttpServletRequest httpRequest, HttpServletResponse httpResponse) throws ServletException, IOException { InputStream inStream =null; BufferedReader br =null; S

Spring mvc返回JSON数据的两种配置方式

1.视图解析方式 依赖包:jackson-core.jackson-databind.jackson-annotationSpring配置文件内容: <bean id="contentNegotiationManager" class="org.springframework.web.accept.ContentNegotiationManagerFactoryBean"> <property name="defaultContentTy

SpringMVC使用Ajax请求返回中文乱码

前言: 最近在写一个JavaWeb后台时采用了spring+MyBatis+MySQL的方式.记录下遇到的关键问题 接口返回数据相关 使用@ResponseBody后返回NUll 说明:刚把后台运行起来,兴高采烈的测试接口数据,结果无论如何都是返回null, 最终通过各种百度,发现原来是没有引入关键的Jar包. 解决办法: 需要引入jackson的jar包(jackson core和jackson mapper),引入后 图: 使用@RequestMapping返回中文乱码 原因分析:(网上基本

Struts2系列笔记(3)---Action类的3种书写方式

Action类的3种书写方式 本文主要写有关写Action类的3种书写方式: (1)第一种 Action可以是POJO (简单模型对象)  不需要继承任何父类 也不需要实现任何接口 (2)实现Action接口 (3)继承ActionSupport(推荐) 那我们先来书写第一种: (1)第一种 Action可以是POJO (简单模型对象)  不需要继承任何父类 也不需要实现任何接口 1 //这里其实就是一个普通的类,类里面的方法可以任意写,如果写execute()方法那就代表默认执行它 2 pub