【开源】 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 , ...
随机推荐
- 自动化测试 接口自动化及UI自动化测试平台设计演示
接口自动化及UI自动化测试平台设计演示 by:授客 QQ:1033553122 欢迎加入全国软件测试交流qq群:7156436 大家好,我是授客. 本视频意在分享个人,基于Python,Djan ...
- Android开发学习之RecyclerView
1.在app/build.gradle中添加RecyclerView依赖 implementation 'com.android.support:recyclerview-v7:28.0.0' 注意依 ...
- 更新 Anaconda 库文件
查看库 Anaconda Navigator中 启动Anaconda Prompt(或Anaconda Navigator中Environment->(base)root->Open te ...
- springboot 学习之路 2(注解介绍)
目录:[持续更新.....] spring 部分常用注解 spring boot 学习之路1(简单入门) spring boot 学习之路2(注解介绍) spring boot 学习之路3( 集成my ...
- (后端)安装mongodb以及设置为windows服务 详细步骤(转)
1.在data文件夹下新建一个log文件夹,用于存放日志文件,在log文件夹下新建文件mongodb.log 2.在 D:\mongodb文件夹下新建文件mongo.config,并用记事本打开mon ...
- 使用 float 存储小数?
很多程序员就会使用 float 类型来存储小数.sql 的 float 类型和其他大多数编程语言的 float 类型一样, 根据IEEE 754 标准使用二进制格式编码实数数据. 但是很多程序员并不清 ...
- jar、war、ear
附加jboss里面的application.xml <?xml version=”1.0″ encoding=”UTF-8″?> <application xmlns="h ...
- PostgreSQL 多级分区
CREATE TABLE range_list (a int,b timestamp) PARTITION BY RANGE (b); CREATE TABLE range_pa1 PARTITION ...
- Oracle 锁机制探究
以前虽然在网上看到很多关于Oracle锁机制的描述,但总感觉哪里有缺陷不适合自己,因此花了点时间参考官网以及Tom Tyke的<Oracle 9i/10g/11g编程艺术>一书整理了一下O ...
- 单线程泵问题(com操作时间超过60s报错)
CLR 无法从 COM 上下文 0x197bf0 转换为 COM 上下文 0x197a80,这种状态已持续 60 秒.拥有目标上下文/单元的线程很有可能执行的是非 ...