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(無需配置)實現。
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 14 public ModelAndView index2() 15 { 16 return new ModelAndView(); 17 } 18 }
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'","")}
後臺代碼javascript
/** * 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. 提供默認分頁控件。html
freemakerjava
<#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>
後臺代碼git
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); } }