【开源】 bsf.mvc spingboot的扩展
- springboot的扩展实现,让springboot开发更加简单;形成demo模板,以后开发更方便。
- 开源地址:https://gitee.com/chejiangyi/bsf.mvc/tree/master/
1. 自动requestmapping(无需配置)实现。
2. freemarker java扩展实现,使freemarker更加便于使用。
3. request 参数大小写兼容实现,传入参数不再区分大小写。
date日期参数兼容,支持对象绑定对public字段的自动映射。
4. url 大小写兼容,不敏感。
5. 提供默认分页控件。
6. 支持.net mvc的写法。
- 1. 自动requestmapping(无需配置)实现。
- /**
- * sprinboot扩展实现,自动requestmapping(public,返回值为ModelAndView类型/或子类)的方法
- */
- public class SpringMvcDemoController extends SpringMvcController {
- public ModelAndView index(Integer a,String b)
- {
- return this.pageVisit(m->{
- //分页控件实现说明
- new Pager1(1,20).setPageSize(10).out();
- });
- }
- public ModelAndView index2()
- {
- return new ModelAndView();
- }
- }
- application.properties 文件中配置,加快自动映射启动速度。
#bsf.mvc自动requestmapping注入的包路径,逗号分割多个
bsf.mvcpackage=com.bsf.mvc.webdemo.controller
- 2. freemarker java扩展实现,使freemarker更加便于使用。
freemarker页面
- ${Html.s("pagetitle","编辑分类")}
- ${Html.g("pagetitle")}
- ${Html.p(model.createtime)}
- ${Html.w(c.selected,"selected='selected'","")}
后台代码
- /**
- * TemplateProvider 缩写简写扩展,方便页面模板里面使用
- 可以被继承,不断扩展
- */
- public class SimpleTemplateProvider extends TemplateProvider {
- /**
- * getattr方法 缩写
- */
- public Object g(String key) {
- return getattr(key);
- }
- /**
- * setattr方法 缩写
- */
- public void s(String key, Object value) {
- setattr(key, value);
- }
- /**
- * where 简写
- */
- public Object w(boolean istrue, Object trueObj, Object falseObj) {
- return where(istrue, trueObj, falseObj);
- }
- /**
- * print 缩写
- */
- public String p(Object o) {
- return print(o);
- }
- }
5. 提供默认分页控件。
freemaker
- <#macro _pager formid="searchForm">
- ${pagehtml!}
- <script type="text/javascript">
//js分页回调- function pagerfunction(pageindex) {
- $("#${formid}").prepend("<input type='hidden' name='pageindex' value='"+pageindex+"'/>");
- $("#${formid}").prepend("<input type='hidden' name='pagesize' value='"+'${pagesize!}'+"'/>");
- $("#${formid}").submit();
- }
- </script>
- </#macro>
后台代码
- new Pager1(pageindex,count).setPageSize(10).out();
- 6. 支持.net mvc的写法。
- /**
- * 扩展springboot 模拟.net mvc的写法
- * 需要继承 NetController
- */
- public class NetMvcDemoController extends NetMvcController {
- public ActionResult index(Integer a,String b)
- {
- //分页控件实现说明
- new Pager1(1,20).setPageSize(10).out();
- return view();
- }
- public ActionResult index2()
- {
- List a = new ArrayList<String>();
- return view("/netmvcdemo/index2",a);
- }
- public ActionResult json()
- {
- List a = new ArrayList<String>();
- return json(a);
- }
- }
【开源】 bsf.mvc spingboot的扩展的更多相关文章
- mvc给html扩展方法:
mvc给html扩展方法: 注意:扩展方法和所在的类都必须是 public static如果在页面直接使用新扩展的方法,需要web.config里把Web.Helper名称命名空间加上,页面才能访问到 ...
- Mvc 分页栏扩展方法
using System; using System.Collections.Generic; using System.Reflection; using System.Text; using Sy ...
- 【ASP.NET MVC系列】浅谈ASP.NET MVC八大类扩展(上篇)
lASP.NET MVC系列文章 [01]浅谈Google Chrome浏览器(理论篇) [02]浅谈Google Chrome浏览器(操作篇)(上) [03]浅谈Google Chrome浏览器(操 ...
- MVC 自定义Htmlhelper扩展
在MVC中,我们不仅可以使用它原来的方法,我们还可以自定义,这不不仅加大了我们开发的效率,同时使界面更简洁. 具体什么是扩展方法,你可以这样理解,必须是静态且在形参中第一个参数是以this开头,大概先 ...
- asp.net MVC添加HtmlHelper扩展示例和用法
一.先创建一个HtmlHelper的扩展类,代码: using System; using System.Collections.Generic; using System.Linq; using S ...
- MVC缓存03,扩展方法实现视图缓存
关于缓存,先前尝试了: ● 在"MVC缓存01,使用控制器缓存或数据层缓存"中,分别在控制器和Data Access Layer实现了缓存 ● 在"MVC缓存02,使用数 ...
- ASP.NET MVC Razor HtmlHelper扩展和自定义控件
先看示例代码: using System; using System.Collections.Generic; using System.Linq; using System.Web; using S ...
- [Asp.net Mvc]通过UrlHelper扩展为js,css静态文件添加版本号
写在前面 在app中嵌入h5应用,最头疼的就是缓存的问题,比如你修改了一个样式,或者在js中添加了一个方法,发布之后,并没有更新,加载的仍是缓存里面的内容.这个时候就需要清理缓存才能解决.但又不想让w ...
- ASP.NET Core MVC 授权的扩展:自定义 Authorize Attribute 和 IApplicationModelProvide
一.概述 ASP.NET Core MVC 提供了基于角色( Role ).声明( Chaim ) 和策略 ( Policy ) 等的授权方式.在实际应用中,可能采用部门( Department , ...
随机推荐
- LVS + HAProxy实现跨网负载均衡
- htnl 定位
相对定位 相对定位:position:relative; 相对定位:相对定位是相对于元素在文档中的初始位置——首先它出现在它所在的位置上(即不设置position时的位置,然后通过设置垂直或水平位置, ...
- OpenVDB for Mitsuba
https://github.com/zhoub/mitsuba-vdb
- centos7安装配置redis
1.下载redis > cd /usr/local/src #文件下载目录 > curl -O http://download.redis.io/releases/redis-3.2.8. ...
- Apache 配置方法(虚拟目录、域名、虚拟主机等)
基本配置 Define SRVROOT "C:/Apache24" #宏定义一个主站点目录常量ServerRoot "${SRVROOT}" ...
- LINQ的求和 平均 最大 最小 分组 计数 等等
1.简单形式: var q = from p in db.Products group p by p.CategoryID into g select g; 语句描述:使用Group By按Categ ...
- 日志记录模块logging
在python中,日志记录显示有两种方式,一种是保存在文件和打印屏幕上,一种保存在文件中. 第一种,直接保存在文件中. import logging #日志模块,方便记录日志 # 下面是配置日志记录格 ...
- AngularJS学习之旅—AngularJS 简介(一)
一.AngularJS 简介 1.AngularJS 是一个 JavaScript 框架. AngularJS 是一个 JavaScript 框架.它是一个以 JavaScript 编写的库.Angu ...
- UNIX高级环境编程(14)文件IO - O_DIRECT和O_SYNC详解 < 海棠花溪 >
春天来了,除了工作学习,大家也要注意锻炼身体,多出去运动运动. 上周末在元大都遗址公园海棠花溪拍的海棠花. 进入正题. O_DIRECT和O_SYNC是系统调用open的flag参数.通过指定o ...
- Python:import 与__import__()
首先来说一下两者的区别: import指令做了两件事:1)搜索module,2)绑定到局部变量 内置函数__import__()只做了一件事:搜索module import指令执行过程中是调用__im ...