这里说的返回值是指action(方法)的返回值。action的可以返回任何类型的值。实际上,除了基础类型和一些特殊情况外,前端获得的输出就是action返回值的toString方法的结果。为了方便说明action的返回值,在此对返回类型进行如下分类:
- 基础类型和普通对象
- 模板渲染器
- JSON
基础类型和普通类
(这里采用“普通类”这个说法,主要为了和其余两种返回值分类的返回值做区别,并没有更多的含义)。
这种情况是最简单的。如果返回值是基础类型,那么返回结果就是返回值的字符串表现形式。如果返回值类型是对象,那么返回结果就是返回值得toString()方法的结果。
比如:
@Mapping(urls="/user")
public User String(){
return new User();
}
返回值结果是这样的:
当然这种返回结果在实际开发中没啥用,哈。
模板渲染器
有时,一个请求希望返回一个页面,这时就需要action返回一个模板渲染器。模板渲染器一般包括两个要素:模板路径和渲染所需数据。模板路径是指页面模板(比如jsp,velocity模板等)的目录;渲染所需数据会被传递到模板里,供使用者操作。所有渲染数据都要放到一个Map对象中,把Map对象作为模板渲染器的构造参数,这样使用者就可以在模板内用Map对象的key 获取到对应的数据。
action:
@Mapping(urls="/user")
public TemplateRenderer user(){
User user = new User();
user.setUsername("琼羽");
user.setPassword("1234");
Map<String, Object> param = new HashMap<String, Object>();
param.put("user", user);
param.put("gender", "女");
return new TemplateRenderer("/user.jsp", param);
}
模板:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<meta charset="UTF-8">
<table>
<tr><td>username</td><td>${user.username }</td></tr>
<tr><td>password</td><td>${user.password }</td></tr>
<tr><td>gender</td><td>${gender }</td></tr>
</table>
访问结果:
JSON
如果一个action上添加了ReturnJson注解,那么该方法的返回将会被自动的被转化成json串,再返回到前端。mint mvc采用fast json作为数据转成字符串的工具。
action:
@ReturnJson
@Mapping(urls="/json")
public User json(){
User user = new User();
user.setUsername("琼羽");
user.setPassword("123");
return user;
}
访问结果:
到目前为止,系列博客已经讲解了mint mvc的:第一个应用,参数,和返回值。这些知识已经足够使用mint mvc写一个简单的应用了。接下来将会讲解拦截器功能,这是mint mvc最主要的进阶功能,暂时也是唯一的进阶功能。敬请期待!
本demo下载地址:http://git.oschina.net/895925636/mintdemo/tree/master
项目地址:http://git.oschina.net/895925636/mint-mvc
收录地址:http://www.oschina.net/p/mint-mvc
博客地址:http://www.wemakers.net/home/blog?cate=1001
(完)