【開源】 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(無需配置)實現。
 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);
    }
}
相關文章
相關標籤/搜索