控制器使用说明:
首先构建一个最基本的控制器类:
/** * @Api注解是控制器的标志注解,JFast扫描到注解就会认为他是控制器 * 当我们发布一个服务时:对应请求路径是: 类名路径+方法路径 * @author jfast 2015年8月20日 */ @Api(path = "api/v1", description = "用户信息控制器") public class UserController { @Resource private UserDao userDao; //字段名称和UserDaoImpl的Resource注解中名称一致 /** * 该服务请求方式为 : GET * 请求地址为 : http://[IP]:[PORT]/[项目名称]/api/v1/users * @return json格式参数 * jfast2015年8月20日 */ @Get(path="users",description="获得所有用户") public Json getUser() { return new Json(userDao.getUser()); } /** * 该服务请求方式为 : GET * 请求地址为 : http://[IP]:[PORT]/[项目名称]/api/v1/users/[用户编号] * @return json格式参数 * jfast2015年8月20日 */ @Get(path="users/:userId",description="获得指定用户") public Json getUser(Integer userId) { return new Json(userDao.getUser(userId)); } }
按照Restful的风格,一般暴露的服务访问地址都是/api/版本号开头,所以建议@Api注解中的path按照我的例子来。
注意点:
- 最终请求路径 = 类名@Api注解的path属性 + 方法的@Get/@Post/@Delete/@Put的path属性
- @Api注解的path属性不是必须的
- 所有需要暴露服务的方法必须都是public的
- 一个控制器类中方法不能同名
- 一个方法如果需要暴露服务,那么有且仅有@Get/@Post/@Delete/@Put/方法中的任意一个注解声明
- 如果对Restful不太了解的可以百度一下,网上现在有很多了,我就不一一赘述了。
关于在控制器(拦截器,验证器,定时器) 中引入其他对象:
- 引入普通的Java类,在类名上使用@Resource注解,Jfast启动时,会扫描所有的Resource类,该类的引用名称默认是它的类名首字母小写,也可以在Resource注解中指定想要的名称,jfast会在需要的时候注入到jfast目标组件中。
- 引入Dao类,在类名上使用@Dao注解,Jfast启动时,会扫描所有的Dao类,Dao类的引用名称默认是它的类名首字母小写,也可以在Dao注解中指定想要的名称,jfast会在需要的时候注入到jfast目标组件中。
控制器请求方法:
- @Get 对应 Http 的 GET请求 用于获得某个资源
- @Post 对应 Http 的 POST请求 用于在服务端创建某个资源
- @Put 对应 Http 的 PUT请求 用于在服务端更新某个资源
- @Delete 对应 Http 的 DELETE请求 用于在服务端删除某个资源
- 其他的还有@Head,@Trace,@Options,@Copy,@Move等
控制器方法返回类型说明(JFast内置返回对象):
- Json : 返回Json字符串到客户端
- Html: 跳转至html页面
- Jsp:跳转至Jsp页面
- Download: 客户端下载文件
- Api:携带原请求访问下一个服务
- Text:返回普通文本
控制器方法接收参数说明:
- JAVA基本数据类型
- 数组类型
- POJO对象
- HttpServletRequest对象
- HttpServletResponse对象
- Cookie对象
- HttpSessio对象
代码示例:
1.接收java基本类型参数并返回Json字符串到客户端
@Get(path="users",description="获得所有用户") public Json getUser(String userName,String password) { return new Json(userDao.getUser()); }
2.跳转Jsp页面
@Get(path="page") public Jsp dispatherJsp() { return new Jsp("index",Route.DISPATHER); }
3.跳转页面并返回参数
@Get(path="page") public Jsp dispatherJsp() { return new Jsp("index",Route.DISPATHER).addDispatherAttribute("username", "jfast"); }
4.重定向页面并返回参数
@Get(path="page") public Jsp redirectJsp() { return new Jsp("index",Route.REDIRECT).addRedirectAttribute("username", "jfast"); }
5.接收User对象1.(Struts2风格)
/** * 请求参数为: * user.userName = jfast * user.password = jfast */ @Post(path="users") public Json addUser(User user) { System.out.println(user.getUserName()); return new Json("{success:true}"); }
6.按Json方式接收User对象
/** * 请求参数为: * user={userName:'jfast',password='',nickName=''} */ @Post(path="users") public Json addUser(User user) { System.out.println(user.getUserName()); return new Json("{success:true}"); }
7.文件上传
/** * 前台上传文件 * file = form-data 二进制上传数据 */ @Post(path="file") public Json addUser(UploadFile file) { System.out.println(file.getFieldName()); // 前台上传文件的字段名,要求和该方法参数名一致 System.out.println(file.getFileName()); // 前台上传文件本身的名称 System.out.println(file.getFileData()); // 前台上传文件二进制数据 System.out.println(file.getSuffix()); // 前台上传文件后缀名称 return new Json("{success:true}"); }
相关推荐
NULL 博文链接:https://jfast.iteye.com/blog/2236781
JFast开发手册1
JFast是一套轻量级的快速开发平台,集业务建模和代码生成于一身的基础框架,按照框架规范,可快速生成一套演示Demo系统,稍微改造即可变成一套可交付实施的软件系统。 本平台的核心采用JFinal+LayUI+MySQL的组合,轻...
jFAST是一个简单的有限自动机(FA)图形仿真实用程序; 它旨在具有用于创建,编辑和模拟FA的简单机制。 jFAST是学生,教师和自导探索者的理想选择。
市场数据优化工作组(MDOWG)为FIX协议组织提供的FAST协议的高效,开源实现。 该协议旨在减少市场数据消息的大小。
jfast快速开发平台 v1.2.zip
archive_ jfast快速开发平台 v1.2 [江西新余电信].zip.zip
默认情况下,这个记录器将从内部环形缓冲区(在单独的线程中)读取消息并将它们写入标准错误输出流(就像 SimpleLogger 所做的那样)。 要实例化 RingBufferLogger,请使用以下方法链: Logger logger = ...