1、Solon的MVC注解

主要注解:

注解 说明
@Controller 控制器注解(只有一个注解,会自动通过不同的返回值做不同的处理)
@Param 请求参数注解(一般用不到,会自动处理)
@Body 请求主体注解(一般用不到,会自动处理)
@Mapping 路由关系印射注解
@Get @Mapping 的辅助注解,便于 RESTful 开发
@Post @Mapping 的辅助注解,便于 RESTful 开发
@Put @Mapping 的辅助注解,便于 RESTful 开发
@Delete @Mapping 的辅助注解,便于 RESTful 开发
@Patch @Mapping 的辅助注解,便于 RESTful 开发

组合效果:

@Controller
public class DemoController{
@Get
@Mapping("/test1/")
public void test1(){
//没返回
} @Get
@Mapping("/test2/")
public String test2(){
return "返回字符串并输出";
} @Mapping("/test3/")
public UseModel test3(@Param(defaultValue="world") String name){ //接收请求name参数
//返回个模型,默认会渲染为json格式输出
return new UseModel(2, name);
} @Mapping("/test4/{qb_dp}")
public ModelAndView test4(String qb_dp, @Body String bodyStr){//接收路径变量和主体字符串
//返回模型与视图,会被视图引擎渲染后再输出,默认是html格式
Map<String,String> map = new HashMap<>();
map.put("name", qb_dp);
map.put("body", bodyStr); return new ModelAndView("view path", map);
}
}

2、视图模板开发,支持6种视图模板引擎,可同时共用

模板引擎 适配的渲染器 默认视图后缀名
freemarker FreemarkerRender .ftl
jsp JspRender .jsp
velocity VelocityRender .vm
thymeleaf ThymeleafRender .html
enjoy EnjoyRender .shtm
beetl BeetlRender .htm

以 freemaerker 视图为例,helloworld.ftl

<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>${title}</title>
</head>
<body>
<div>
${message}
</div>
</body>
</html>

控制器

@Controller
public class HelloworldController {
@Mapping("/helloworld")
public Object helloworld(){
ModelAndView vm = new ModelAndView("helloworld.ftl"); vm.put("title","demo");
vm.put("message","hello world!"); return vm;
}
}

3、模板调试模式(即:模板修改后,浏览器刷新即可)

//调试模式:
启动参数添加:-deubg=1 或 --deubg=1

4、在模板中使用认证标签

以 freemaerker 视图为例:

<@authPermissions name="user:del">
我有user:del权限
</@authPermissions> <@authRoles name="admin">
我有admin角色
</@authRoles>

5、在模板中使用国际化接口

以 freemaerker 视图为例:

<div>
i18n::${i18n["login.title"]}
i18n::${i18n.get("login.title")}
i18n::${i18n.getAndFormat("login.title",12,"a")}
</div>

具体内容可参考 国际化的章节。

Solon Web 开发,七、视图模板与Mvc注解的更多相关文章

  1. Solon Web 开发

    Solon Web 开发 一.开始 二.开发知识准备 三.打包与运行 四.请求上下文 五.数据访问.事务与缓存应用 六.过滤器.处理.拦截器 七.视图模板与Mvc注解 八.校验.及定制与扩展 九.跨域 ...

  2. Solon Web 开发,一、开始

    Solon Web 开发 一.开始 二.开发知识准备 三.打包与运行 四.请求上下文 五.数据访问.事务与缓存应用 六.过滤器.处理.拦截器 七.视图模板与Mvc注解 八.校验.及定制与扩展 九.跨域 ...

  3. Solon Web 开发,二、开发知识准备

    Solon Web 开发 一.开始 二.开发知识准备 三.打包与运行 四.请求上下文 五.数据访问.事务与缓存应用 六.过滤器.处理.拦截器 七.视图模板与Mvc注解 八.校验.及定制与扩展 九.跨域 ...

  4. Solon Web 开发,四、请求上下文

    Solon Web 开发 一.开始 二.开发知识准备 三.打包与运行 四.请求上下文 五.数据访问.事务与缓存应用 六.过滤器.处理.拦截器 七.视图模板与Mvc注解 八.校验.及定制与扩展 九.跨域 ...

  5. Solon Web 开发,五、数据访问、事务与缓存应用

    Solon Web 开发 一.开始 二.开发知识准备 三.打包与运行 四.请求上下文 五.数据访问.事务与缓存应用 六.过滤器.处理.拦截器 七.视图模板与Mvc注解 八.校验.及定制与扩展 九.跨域 ...

  6. Solon Web 开发,六、过滤器、处理、拦截器

    Solon Web 开发 一.开始 二.开发知识准备 三.打包与运行 四.请求上下文 五.数据访问.事务与缓存应用 六.过滤器.处理.拦截器 七.视图模板与Mvc注解 八.校验.及定制与扩展 九.跨域 ...

  7. Solon Web 开发,八、校验、及定制与扩展

    Solon Web 开发 一.开始 二.开发知识准备 三.打包与运行 四.请求上下文 五.数据访问.事务与缓存应用 六.过滤器.处理.拦截器 七.视图模板与Mvc注解 八.校验.及定制与扩展 九.跨域 ...

  8. Solon Web 开发,九、跨域处理

    Solon Web 开发 一.开始 二.开发知识准备 三.打包与运行 四.请求上下文 五.数据访问.事务与缓存应用 六.过滤器.处理.拦截器 七.视图模板与Mvc注解 八.校验.及定制与扩展 九.跨域 ...

  9. Solon Web 开发,十一、国际化

    Solon Web 开发 一.开始 二.开发知识准备 三.打包与运行 四.请求上下文 五.数据访问.事务与缓存应用 六.过滤器.处理.拦截器 七.视图模板与Mvc注解 八.校验.及定制与扩展 九.跨域 ...

随机推荐

  1. js Date()获取时间,格式化输出,时间比较大小

    1.获取时间并且格式化输出 new Date().toLocaleString('cn',{hour12:false}) //2018/12/6 17:57:15 new Date().toLocal ...

  2. WebSocket协议理解-数据包格式解析

    WebSocket 的诞生 做客户端开发时,接触最多的应用层网络协议,就是 HTTP 协议,而今天介绍的 WebSocket,下层和 HTTP 一样也是基于 TCP 协议,这是一种轻量级网络通信协议, ...

  3. JAVA实现根据图片生成缩略图、裁剪、压缩图片

    依赖(用来复制文件,可以根据自己的来) <dependency> <groupId>commons-io</groupId> <artifactId>c ...

  4. Spring Boot应用程序启动器

    官网地址:https://docs.spring.io/spring-boot/docs/2.1.12.RELEASE/reference/html/using-boot-build-systems. ...

  5. Linux报错:ERROR>the input device is not a TTY

    docker执行命令的时候报错 这是时候去掉docker后面的 -it参数

  6. C(++)判断文件是否存在

    代码 核心代码 /// 判断文件是否存在 bool is_exist_file_(std::string&& str_file) { struct stat st; return (0 ...

  7. c++之Linux获取可用串口

    1.关于 这份代码来自: stackoverflow 2. 测试 2.1 测试环境: vmware + ubuntu, vmware添加串口(虚拟机关机后再添加) 2.2 测试输出 3. 源码 #in ...

  8. 【LeetCode】1162. 地图分析 As Far from Land as Possible(Python)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 这个题想考察什么? 剩下的任务就是套模板! 日期 题目 ...

  9. 【LeetCode】994. Rotting Oranges 解题报告(Python)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 BFS 日期 题目地址:https://leetco ...

  10. 【LeetCode】781. Rabbits in Forest 解题报告(Python & C++)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 日期 题目地址:https://leetcode.c ...