【开源】 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 , ...
随机推荐
- springboot 集成 mybatis
1,添加依赖 <!-- mybatis --> <dependency> <groupId>org.mybatis.spring.boot</groupId& ...
- 【极简】如何挑选合适的百度BCC,并安装宝塔控制面板
1.前期有百度云账号,登陆系统控制台,点击产品"云服务器BCC". 2.关闭绑定快照策略,选择购买弹性公网IP,如果选择不需要,服务器就没有对外的IP,只能在内网内使用,所以这里要 ...
- iOS----------The app's Info.plist must contain an NSPhotoLibraryUsageDescription key
This app has crashed because it attempted to access privacy-sensitive data without a usage descripti ...
- AndroBench手机性能测试
AndroBench是一个基准测试应用程序,可以衡量你的Android设备的存储性能. AndroBench提供两种方式,第一种可以快速与其他设备的存储进行比较. 第二种 SQLite可以查询数据库表 ...
- 微信小程序-全国快递查询
微信小程序-全国快递查询 摘要:WeChat.小程序.JS 开发过程 源码下载 1. GitHub 2. 百度云 链接:https://pan.baidu.com/s/1XVbtT2JsZslg4Y0 ...
- Flutter 布局(二)- Padding、Align、Center详解
本文主要介绍Flutter布局中的Padding.Align以及Center控件,详细介绍了其布局行为以及使用场景,并对源码进行了分析. 1. Padding A widget that insets ...
- 现有项目中集成Flutter
本文列举了项目开发使用Flutter会遇到的问题,以及如何使用Flutter module在现有项目中集成Flutter,并对其原理进行了分析. 最近在做的一个商业项目,完全的使用Flutter编写的 ...
- Ubuntu-18.04安装Docker
Docker 介绍 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制 ...
- [20190306]奇怪的查询结果.txt
[20190306]奇怪的查询结果.txt--//链接http://www.itpub.net/thread-2108588-1-1.html提到一个非常古怪的问题,我自己重复测试看看:1.环境:SC ...
- mssql 一次向表中插入多条数据的方法分享 (转自:http://www.maomao365.com/?p=6058)
转自:http://www.maomao365.com/?p=6058) <span style="font-size:16px;font-weight:bold;"> ...