1. springboot的扩展实现,让springboot开发更加简单;形成demo模板,以后开发更方便。
  2. 开源地址: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. 1. 自动requestmapping(无需配置)实现。
  1. /**
  2. * sprinboot扩展实现,自动requestmapping(public,返回值为ModelAndView类型/或子类)的方法
  3. */
  4. public class SpringMvcDemoController extends SpringMvcController {
  5. public ModelAndView index(Integer a,String b)
  6. {
  7. return this.pageVisit(m->{
  8. //分页控件实现说明
  9. new Pager1(1,20).setPageSize(10).out();
  10. });
  11. }
  12.  
  13. public ModelAndView index2()
  14. {
  15. return new ModelAndView();
  16. }
  17. }
  1. application.properties 文件中配置,加快自动映射启动速度。
    #bsf.mvc自动requestmapping注入的包路径,逗号分割多个
    bsf.mvcpackage=com.bsf.mvc.webdemo.controller
  1.  
  1. 2. freemarker java扩展实现,使freemarker更加便于使用。
    freemarker页面
  1. ${Html.s("pagetitle","编辑分类")}
  2. ${Html.g("pagetitle")}
  3. ${Html.p(model.createtime)}
  4. ${Html.w(c.selected,"selected='selected'","")}

后台代码

  1. /**
  2. * TemplateProvider 缩写简写扩展,方便页面模板里面使用
  3. 可以被继承,不断扩展
  4. */
  5. public class SimpleTemplateProvider extends TemplateProvider {
  6. /**
  7. * getattr方法 缩写
  8. */
  9. public Object g(String key) {
  10. return getattr(key);
  11. }
  12.  
  13. /**
  14. * setattr方法 缩写
  15. */
  16. public void s(String key, Object value) {
  17. setattr(key, value);
  18. }
  19.  
  20. /**
  21. * where 简写
  22. */
  23. public Object w(boolean istrue, Object trueObj, Object falseObj) {
  24. return where(istrue, trueObj, falseObj);
  25. }
  26.  
  27. /**
  28. * print 缩写
  29. */
  30. public String p(Object o) {
  31. return print(o);
  32. }
  33. }

5. 提供默认分页控件。

freemaker

  1. <#macro _pager formid="searchForm">
  2. ${pagehtml!}
  3. <script type="text/javascript">
      //js分页回调
  4. function pagerfunction(pageindex) {
  5. $("#${formid}").prepend("<input type='hidden' name='pageindex' value='"+pageindex+"'/>");
  6. $("#${formid}").prepend("<input type='hidden' name='pagesize' value='"+'${pagesize!}'+"'/>");
  7. $("#${formid}").submit();
  8. }
  9. </script>
  10. </#macro>

后台代码

  1. new Pager1(pageindex,count).setPageSize(10).out();
  1.  
  1. 6. 支持.net mvc的写法。
  1.  
  1. /**
  2. * 扩展springboot 模拟.net mvc的写法
  3. * 需要继承 NetController
  4. */
  5. public class NetMvcDemoController extends NetMvcController {
  6. public ActionResult index(Integer a,String b)
  7. {
  8. //分页控件实现说明
  9. new Pager1(1,20).setPageSize(10).out();
  10. return view();
  11. }
  12.  
  13. public ActionResult index2()
  14. {
  15. List a = new ArrayList<String>();
  16. return view("/netmvcdemo/index2",a);
  17. }
  18.  
  19. public ActionResult json()
  20. {
  21. List a = new ArrayList<String>();
  22. return json(a);
  23. }
  24. }
  1.  
  1.  

【开源】 bsf.mvc spingboot的扩展的更多相关文章

  1. mvc给html扩展方法:

    mvc给html扩展方法: 注意:扩展方法和所在的类都必须是 public static如果在页面直接使用新扩展的方法,需要web.config里把Web.Helper名称命名空间加上,页面才能访问到 ...

  2. Mvc 分页栏扩展方法

    using System; using System.Collections.Generic; using System.Reflection; using System.Text; using Sy ...

  3. 【ASP.NET MVC系列】浅谈ASP.NET MVC八大类扩展(上篇)

    lASP.NET MVC系列文章 [01]浅谈Google Chrome浏览器(理论篇) [02]浅谈Google Chrome浏览器(操作篇)(上) [03]浅谈Google Chrome浏览器(操 ...

  4. MVC 自定义Htmlhelper扩展

    在MVC中,我们不仅可以使用它原来的方法,我们还可以自定义,这不不仅加大了我们开发的效率,同时使界面更简洁. 具体什么是扩展方法,你可以这样理解,必须是静态且在形参中第一个参数是以this开头,大概先 ...

  5. asp.net MVC添加HtmlHelper扩展示例和用法

    一.先创建一个HtmlHelper的扩展类,代码: using System; using System.Collections.Generic; using System.Linq; using S ...

  6. MVC缓存03,扩展方法实现视图缓存

    关于缓存,先前尝试了: ● 在"MVC缓存01,使用控制器缓存或数据层缓存"中,分别在控制器和Data Access Layer实现了缓存 ● 在"MVC缓存02,使用数 ...

  7. ASP.NET MVC Razor HtmlHelper扩展和自定义控件

    先看示例代码: using System; using System.Collections.Generic; using System.Linq; using System.Web; using S ...

  8. [Asp.net Mvc]通过UrlHelper扩展为js,css静态文件添加版本号

    写在前面 在app中嵌入h5应用,最头疼的就是缓存的问题,比如你修改了一个样式,或者在js中添加了一个方法,发布之后,并没有更新,加载的仍是缓存里面的内容.这个时候就需要清理缓存才能解决.但又不想让w ...

  9. ASP.NET Core MVC 授权的扩展:自定义 Authorize Attribute 和 IApplicationModelProvide

    一.概述 ASP.NET Core MVC 提供了基于角色( Role ).声明( Chaim ) 和策略 ( Policy ) 等的授权方式.在实际应用中,可能采用部门( Department , ...

随机推荐

  1. LVS + HAProxy实现跨网负载均衡

  2. htnl 定位

    相对定位 相对定位:position:relative; 相对定位:相对定位是相对于元素在文档中的初始位置——首先它出现在它所在的位置上(即不设置position时的位置,然后通过设置垂直或水平位置, ...

  3. OpenVDB for Mitsuba

    https://github.com/zhoub/mitsuba-vdb

  4. centos7安装配置redis

    1.下载redis > cd /usr/local/src #文件下载目录 > curl -O http://download.redis.io/releases/redis-3.2.8. ...

  5. Apache 配置方法(虚拟目录、域名、虚拟主机等)

    基本配置 Define SRVROOT "C:/Apache24"     #宏定义一个主站点目录常量ServerRoot "${SRVROOT}"       ...

  6. LINQ的求和 平均 最大 最小 分组 计数 等等

    1.简单形式: var q = from p in db.Products group p by p.CategoryID into g select g; 语句描述:使用Group By按Categ ...

  7. 日志记录模块logging

    在python中,日志记录显示有两种方式,一种是保存在文件和打印屏幕上,一种保存在文件中. 第一种,直接保存在文件中. import logging #日志模块,方便记录日志 # 下面是配置日志记录格 ...

  8. AngularJS学习之旅—AngularJS 简介(一)

    一.AngularJS 简介 1.AngularJS 是一个 JavaScript 框架. AngularJS 是一个 JavaScript 框架.它是一个以 JavaScript 编写的库.Angu ...

  9. UNIX高级环境编程(14)文件IO - O_DIRECT和O_SYNC详解 < 海棠花溪 >

    春天来了,除了工作学习,大家也要注意锻炼身体,多出去运动运动.  上周末在元大都遗址公园海棠花溪拍的海棠花.   进入正题. O_DIRECT和O_SYNC是系统调用open的flag参数.通过指定o ...

  10. Python:import 与__import__()

    首先来说一下两者的区别: import指令做了两件事:1)搜索module,2)绑定到局部变量 内置函数__import__()只做了一件事:搜索module import指令执行过程中是调用__im ...