业务方法的参数

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

常见的参数类型:

  • 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()的内容保存到文件中(下载)。

最新文章

  1. .NET面试题系列[7] - 委托与事件
  2. HTML 列表 &lt;ol&gt;&lt;ul&gt;&lt;li&gt;&lt;dl&gt;&lt;dt&gt;&lt;dd&gt;
  3. sqlite数据库安装配置
  4. C语言实现简单线程池(转-Newerth)
  5. Java的内存回收机制
  6. SecureCRT相关
  7. 【转】图片IMG标记的alt属性和title属性的使用
  8. HDU 2610 (自己完全找不到思路) Sequence one
  9. java的真相
  10. Querylayer(查询图层) - 浅谈
  11. instanceof 原理
  12. 使用Docker安装Nginx
  13. maven 禁止连接外网仓库
  14. 已知一个字符串S 以及长度为n的字符数组a,编写一个函数,统计a中每个字符在字符串中的出现次数
  15. webstorm主要快捷键
  16. 20145232韩文浩《网络对抗》MSF基础应用
  17. 从零开始unity特效(持续追加中)
  18. Linux命令之ll
  19. 【转】C#中对IDisposable接口的理解
  20. python:&#39;ascii&#39; codec can&#39;t encode character

热门文章

  1. mysql数据库数据备份还原
  2. 解析-analysis
  3. ES5-Object扩展方法
  4. mac 重启php-fpm
  5. dp-简单迷宫捡金币
  6. SVN中如何创建共享文件夹
  7. The Last Puzzle ZOJ - 3541
  8. 阿里云短信接口开发实践(Java
  9. DVWA靶机实战-文件上传漏洞(二)
  10. Java基础知识笔记第四章:类和对象