业务方法的参数

业务方法的参数类型、参数个数是任意的,根据需要使用。

常见的参数类型:

  • HttpServletRequest、HttpServletResponse、HttpSession

     获取Servlet原生的API

  • Model 、ModelMap

     向视图传递数据,会自动将Model、ModelMap中的数据传给视图。

  • 简单数据类型 、实体类

     接收表单传递的数据


常见的返回值类型

  • ModeAndView

   视图名+数据

  • String

      返回视图名,会与视图解析器中的前缀、后缀拼接起来,组成完整的视图名。

   可以和@ResponseBody配合使用,直接向浏览器输出字符串。

  • void

     有时候接收到请求后,做一些操作就OK了,不必返回视图来响应,这时可以把返回值类型写成void。

   如果想转发、重定向、向视图传递数据,可以传入参数HttpServletRequest、HttpServletResponse。

   需要注意的是,使用HttpServletRequest、HttpServletResponse进行转发、重定向时,不会使用视图解析器,需要写完整的视图名。


示例   返回视图名

比如登录成功,返回某个视图名,转发到指定的页面。

    @RequestMapping("/login")
public String login(){
//....
return "index";
} @RequestMapping("/logout")
public String logout(){
//....
return "index";
} @RequestMapping("/upload")
public String upload(){
//....
return "success";
}

示例  使用Model向视图传递数据

    @RequestMapping("/handler")
public String handler(Model model){
User user = new User();
user.setUsername("chy");
user.setPassword("abcd"); model.addAttribute("user", user);
return "user_info";
}

在视图中可通过${key}的方式获取对应的value。

Model中可储存多个数据,使用多个setAttribute()即可,数据的类型可以不相同(实质是使用Map储存数据)。


示例   直接输出到浏览器

方式一:

    @RequestMapping("/user")
@ResponseBody
public String handler(){
return "<h2>hello</h2>";
}

把字符串添加到响应体中返回给浏览器。浏览器会解析里面的html标签。

方式二:

    @RequestMapping("/user")
public void handler(HttpServletResponse response) throws IOException {
response.getWriter().print("<h1>hello</h1>");
}

注意print()才是输出到浏览器页面上,write()是向浏览器写数据,浏览器会把write()的内容保存到文件中(下载)。

SpringMVC controller中业务方法的参数、返回值的更多相关文章

  1. 13 继续C#中的方法,带返回值的方法介绍

    在这一个练习中,我们要使用带返回值的方法.如果一个方法带返回值,那么它的形式是这样的. 定义一个带返回值的C#方法 static 返回类型 方法名字 (参数类型 参数1的名字,参数类型 参数2的名字) ...

  2. 单元测试时候使用[ClassInitialize]会该方法必须是静态的公共方法,不返回值并且应采用一个TestContext类型的参数报错的解决办法

    using Microsoft.VisualStudio.TestTools.UnitTesting; 如果该DLL应用的是 C:\Program Files\Microsoft Visual Stu ...

  3. Spring的Aspect切面类不能拦截Controller中的方法

    根本原因在于<aop:aspectj-autoproxy />这句话是在spring的配置文件内,还是在springmvc的配置文件内.如果是在spring的配置文件内,则@Control ...

  4. 反射找Controller中的方法

    /// <summary> /// 根据接口编码APICode,调用相应的webapi方法,注意返回值是json字符串 /// </summary> /// <param ...

  5. js中settimeout方法加参数

    js中settimeout方法加参数的使用. 简单使用看w3school  里面没有参数调用,  例子: <script type="text/javascript"> ...

  6. ASP.NET MVC4在View中调用当前Controller中的方法

    调用当前Controller中的方法 @{ ((HomeController)ViewContext.Controller).Method1(); } 调用静态方法 @{ SomeClass.Meth ...

  7. Java学习笔记13---如何理解“子类重写父类方法时,返回值若为类类型,则必须与父类返回值类型相同或为其子类”

    子类重新实现父类的方法称重写:重写时可以修改访问权限修饰符和返回值,方法名和参数类型及个数都不可以修改:仅当返回值为类类型时,重写的方法才可以修改返回值类型,且必须是父类方法返回值的子类:要么就不修改 ...

  8. SubSonic3.0使用存储过程查询时,不能使用output参数返回值的问题修改

    有个群友问SubSonic3.0执行存储过程时能不能使用output参数返回值,说测试过后获取不到返回值,早上有些时间所以就尝试修改了一下 首先在数据库中创建一个存储过程 CREATE PROCEDU ...

  9. 创建一个接口Shape,其中有抽象方法area,类Circle 、Rectangle实现area方法计算其面积并返回。又有Star实现Shape的area方法,其返回值是0,Star类另有一返回值boolean型方法isStar;在main方法里创建一个Vector,根据随机数的不同向其中加入Shape的不同子类对象(如是1,生成Circle对象;如是2,生成Rectangle对象;如是3,生成S

    题目补充: 创建一个接口Shape,其中有抽象方法area,类Circle .Rectangle实现area方法计算其面积并返回. 又有Star实现Shape的area方法,其返回值是0,Star类另 ...

随机推荐

  1. 创业学习---《如何预判创业可行性》--B-1.预判模块---HHR计划---以太一堂

    <如何预判创业可行性>----对创业进行占卜 一,<开始学习> 1,预热思考题: (1)预判一个模式的可行性.你有一个朋友要创业,给你讲了他的创业计划,你帮他判断一下是否靠谱. ...

  2. windows下如何快速删除大文件

    rmdir  磁盘:\文件夹的名字  /s /q; eg:rmdir E:\vue_workspace\KB\day08    /s/q /S 表示除目录本身外,还将删除指定目录下的所有子目录和文件. ...

  3. EAP认证

    EAP信息交换: 上图中展示的是OTP(一次性密码)实现EAP交换过程,具体的EAP交换过程如下: 步骤1:请求方向认证方发送EAPOL-Start消息,通知对方已经做到了认证准备(注意:若会话由认证 ...

  4. 【读书笔记】图解HTTP完整流程

    1.1 使用 HTTP 协议访问 Web: 根据 Web 浏览器地址栏中指定的URL,从服务端获取资源等信息,在页面上展示. Web 使用一种 HTTP (超文本传输协议)作为规范,完成从客户端到服务 ...

  5. 对FPM 模块进行参数优化!

    Nginx 的 PHP 解析功能实现如果是交由 FPM 处理的,为了提高 PHP 的处理速度,可对FPM 模块进行参数跳转.FPM 优化参数:pm 使用哪种方式启动 fpm 进程,可以说 static ...

  6. Typescript 实战 --- (8)高级类型

    1.交叉类型   将多个类型合并成一个类型,新的类型将具有所有类型的特性,适用于对象混用   语法: 类型1 & 类型2 & 类型3 interface CatInterface { ...

  7. 字符流---Day32

    时隔多久,我又回来写博客了,最近忙于两个课设,五周,搞得头发都不知道掉了多少根了,还没成为程序员就开始掉了,等我成为一名程序员的时候岂不是要秃头了,IT界的人会不会帮我当成大佬了,哈哈哈哈,希望我以后 ...

  8. poj1988 Cube Stacking(并查集

    题目地址:http://poj.org/problem?id=1988 题意:共n个数,p个操作.输入p.有两个操作M和C.M x y表示把x所在的栈放到y所在的栈上(比如M 2 6:[2 4]放到[ ...

  9. nginx 的 content阶段的root指令与alias指令

    root 与alias指令 Syntax: alias path; Default: — Context: location Syntax: root path; Default: root html ...

  10. Primecoin在windows上的部署和启动服务

     Primecoin在windows上的部署和启动服务: 一.从官方获得Primecoin的windows版安装包: 二.一路像安装客户端一样的安装: 三.安装成功后它会自动弹出客户端运行,同步数据, ...