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. .NET Core工程应用系列(1) 定制化Audit.NET实现自定义AuditTarget

    需求背景 最近在项目上需要增加对用户操作进行审计日志记录的功能,调研了一圈,在.net core生态里,用的最多的是Audit.NET.浏览完这个库的文档后,觉得大致能满足我们的诉求,于是建立一个控制 ...

  2. 基于MCRA-OMLSA的语音降噪(一):原理

    前面的几篇文章讲了webRTC中的语音降噪.最近又用到了基于MCRA-OMLSA的语音降噪,就学习了原理并且软件实现了它.MCRA主要用于噪声估计,OMLSA是基于估计出来的噪声去做降噪.类比于web ...

  3. Windows Terminal 终端 SSH连接centos7 linux

    1.在Windows Store中安装 Windows Terminal 2.打开Windows Terminal,使用下拉箭头,打开设置. 3.在左侧点击"添加新配置文件",再点 ...

  4. CF1547B Alphabetical Strings 题解

    Content 我们有一个空的字符串,第 \(i\) 次操作我们可以将字母表中第 \(i\) 个字母加入字符串的最前面或最后面.我们称一个长度为 \(n\) 的字符串是合法的,当且仅当这个字符串可以通 ...

  5. java数据类型:集合存储元素类型限制<泛型> ;自定义类指定泛型<T> 以及限制用法;派生子类泛型<T> super(泛型内参数); 泛型通配符?以及?限制用法

    问题背景 Java 集合有个缺点,把一个对象"丢进"集合里之后,集合就会"忘记"这个对象的数据类型,当再次取出该对象时 该对象的编译类型就变Object类型(其 ...

  6. netcore XmlDocument 使用Load和Save方法

    string path ="C://xxx/file" XmlDocument xmlDoc = new XmlDocument(); #if NET462 xmlDoc.Load ...

  7. Redis报错:RDB snapshots, but it is currently not able to persist on disk 处理

    Response received : -MISCONF Redis is configured to save RDB snapshots, but it is currently not able ...

  8. c++ vector释放概述

    这里仅为概述,具体的详情分析,可以Google下,会得到更详尽的解释. 1.函数clear和erase都将数组的size清空,但对应的空间并没有回收,而且,一直push_baclk, 对应的capac ...

  9. TempCache 临时内存缓存器

    TempCache.h /* *************************************************** * Copyright(c) Xiamen AutoNavi Co ...

  10. 【LeetCode】225. Implement Stack using Queues 解题报告(Python)

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