Controller方法的返回值
方法的返回值
1、ModelAndView
这个就不多说,这是最基础的,前面定义一个ModelAndView,中途使用addObject方法添加属性,再返回。视图解析器会自动扫描到的。
2、String
这个就有三种情况了:
<1>return普通的string
这个string的表示逻辑视图名,真正跳转的视图名=前缀+逻辑视图名+后缀
返回值为string也可以实现类似于ModelAndView的效果,如何进行给视图值呢?
我们可以给方法加一个Model的参数,然后调用model的addAttribute方法加信息,三种string的类型都能这样使用
小例子:
@RequestMapping(value="/editItems",method={RequestMethod.POST,RequestMethod.GET})
public String editItem(Model model)throws Exception{
//...
...
model.addAttribute("itemsCustom",itemsCustom));
return "items/editItems";
}
<2>return "redirect:xxx" xxx是一个Path,重定向,有点感觉吧,哈哈。我们前面的servlet工具类
<3>return “forward:xxx" xxx是一个Path,转发
转发和重定向的区别和Servlet中的一样,我们如何判断我们重定向后的信息没有丢失呢?
我们可以给方法加上一个request参数,然后request.getParameter获取判断
小例子:
@RequestMapping("/queryItems")
public String queryItems(HttpServletRequest request) throws Exception{
System.out.println(request.getParameter("id"));
//...
}
3、返回void(和我们使用Http的处理器映射器基本一样)
在controller犯法形参上可以定义request和response,使用request或response指向响应结果:
1、使用request转向页面,如下:
request.getRequestDispatcher("页面路径").forward(request,response);
2、也可以通过response重定向:
response.sendRedirect("url");
3、也可以通过response指定响应结果,例如响应json数据:
response.setCharacterEncoding("utf-8");
response.setContentType("application/json;charset=utf-8");
response.getWriter().write("json串)
最新文章
- docker学习(5) 在mac中创建mysql docker容器
- Entity Framework Code First属性映射约定
- php数据访问(修改)
- python pip install
- java中的静态代码块、构造代码块、构造方法
- 打开Excel时提示"您尝试打开的文件**.xls的格式与文件扩展名指定的格式不一致"
- RichtextBox去除闪烁光标
- 产品 线上 保持 和 支持 服务 (Support and maintenance solutions)
- PerformSelector 和 NSInvocation
- 自定义程序异常Exception
- 个人微信接入图灵机器人(基于Python)
- sql小知识点
- 在项目中迁移MS SQLServer到Mysql数据库,实现MySQL数据库的快速整合
- weblogic 控制台访问速度很慢的解决方案
- MyBatis中传入参数parameterType类型详解
- U811.1接口EAI系列之五--材料出库--VB语言
- 熟悉下apple 马甲包
- excel中如何让每n行显示同一个数据
- IOS,objective_C中用@interface和 @property 方式声明变量的区别
- numEdit