不做浮躁的人
          正在行走的人...
          posts - 171,  comments - 51,  trackbacks - 0
          1、使用的是Spring EL而不是Ognl。
          2、訪問上下文的Bean用${@myBean.doSomething()}
          3、th:field,th:errors,th:errorclass用于form processing。
          4、要采用SpringTemplateEngine。
          5、基本配置:
          <bean id="templateResolver"
                 class="org.thymeleaf.templateresolver.ServletContextTemplateResolver">
            <property name="prefix" value="/WEB-INF/templates/" />
            <property name="suffix" value=".html" />
            <property name="templateMode" value="HTML5" />
          </bean>
              
          <bean id="templateEngine"
                class="org.thymeleaf.spring3.SpringTemplateEngine">
            <property name="templateResolver" ref="templateResolver" />
          </bean>

          <bean class="org.thymeleaf.spring3.view.ThymeleafViewResolver">
            <property name="templateEngine" ref="templateEngine" />
            <property name="order" value="1" />
            <property name="viewNames" value="*.html,*.xhtml" />
          </bean>

          6、被@ModelAttribute注釋的方法會在此controller每個方法執(zhí)行前被執(zhí)行,如果@ModelAttribute注釋的方法有返回值,則表示在model中存放隱含名稱的屬性對象,比如返回Account,則相當于model.addAttribute("account",account),如果@ModelAttribute(value="aname")注釋方法,則表示在model中增加aname的屬性值。@ModelAttribute注釋一個方法的參數(shù)則表示從model中或者從Form表單或者url中獲取。
          7、 @RequestMapping("/hello")public void novoid() { },返回視圖為前綴+/hello+后綴,當方法返回Map,ModelMap等時都是相當于Request.setAttribute()。
          8、<td th:text="${{sb.datePlanted}}">13/01/2011</td>雙括號表示自動使用轉換,常用于格式轉換。
          9、<td th:text="${#strings.arrayJoin(#messages.arrayMsg(#strings.arrayPrepend(sb.features,'seedstarter.feature.')),', ')}">Electric Heating, Turf</td>,首先將數(shù)組feathers都加上前綴,然后利用messages翻譯國際化,最終組合成一個字符串。
          10、用th:object指定command object,比如:<form action="#" th:action="@{/save}" th:object="${person}" method="post">,兩點限制,第一object只能是model 的直接attribute,不能使${person.baseInfo},第二,th:object的子級標簽內不能再使用th:object。inputField使用:<input type="text" th:field="*{datePlanted}" />。
          12、checkbox標簽:
          <div>
            <label th:for="${#ids.next('covered')}" th:text="#{seedstarter.covered}">Covered</label>
            <input type="checkbox" th:field="*{covered}" />
          </div>
          checkbox array:
          <ul>
            <li th:each="feat : ${allFeatures}">
              <input type="checkbox" th:field="*{features}" th:value="${feat}" />
              <label th:for="${#ids.prev('features')}" th:text="#{${'seedstarter.feature.' + feat}}">Heating</label>
            </li>
          </ul>

          13、radios:
          <ul>
            <li th:each="ty : ${allTypes}">
              <input type="radio" th:field="*{type}" th:value="${ty}" />
              <label th:for="${#ids.prev('type')}" th:text="#{${'seedstarter.type.' + ty}}">Wireframe</label>
            </li>
          </ul>

          14、dropdownlist or select。
          <select th:field="*{type}">
            <option th:each="type : ${allTypes}"
                    th:value="${type}"
                    th:text="#{${'seedstarter.type.' + type}}">Wireframe</option>
          </select>

          15、預處理:<select th:field="*{rows[__${rowStat.index}__].variety}">而不使用<select th:field="*{rows[rowStat.index].variety}">,因為spring el不會計算數(shù)組索引中的變量或者表達式。
          16、錯誤顯示:<input type="text" th:field="*{datePlanted}" th:class="${#fields.hasErrors('datePlanted')}? fieldError" />
          <ul>
            <li th:each="err : ${#fields.errors('datePlanted')}" th:text="${err}" />
          </ul>

          <input type="text" th:field="*{datePlanted}" />
          <p th:if="${#fields.hasErrors('datePlanted')}" th:errors="*{datePlanted}">Incorrect date</p>

          <input type="text" th:field="*{datePlanted}" class="small" th:errorclass="fieldError" />

          <ul th:if="${#fields.hasErrors('*')}">
            <li th:each="err : ${#fields.errors('*')}" th:text="${err}">Input is incorrect</li>
          </ul>
          全局錯誤:
          <ul th:if="${#fields.hasErrors('global')}">
            <li th:each="err : ${#fields.errors('global')}" th:text="${err}">Input is incorrect</li>
          </ul>
          在form外顯示錯誤:
          <div th:errors="${myForm}">...</div>
          <div th:errors="${myForm.date}">...</div>
          <div th:errors="${myForm.*}">...</div>

          <div th:if="${#fields.hasErrors('${myForm}')}">...</div>
          <div th:if="${#fields.hasErrors('${myForm.date}')}">...</div>
          <div th:if="${#fields.hasErrors('${myForm.*}')}">...</div>

          <form th:object="${myForm}">
              ...
          </form>
          17、利用功能類轉換:#conversions.convert(Object,Class),#conversions.convert(Object,String)
          18、渲染模板的片段,常用于ajax,返回一部分文本做替換使用。
          在ViewBean中指定片段:
          <bean name="content-part" class="org.thymeleaf.spring3.view.ThymeleafView">
            <property name="templateName" value="index" />
            <property name="fragmentSpec">
              <bean class="org.thymeleaf.standard.fragment.StandardDOMSelectorFragmentSpec"
                    c:selectorExpression="content" />
            </property>
          </bean>

          @RequestMapping("/showContentPart")
          public String showContentPart() {
              ...
              return "content-part";//返回上面定義的bean名稱。
          }
          c:selectorExpression="content":需要在content節(jié)點加上th:fragment。
          c:selectorExpression="#content" :完全基于html dom selector,無需th:fragment。
          在controller中指定片段:
          @RequestMapping("/showContentPart")
          public String showContentPart() {
              ...
              return "index :: content";
          }
          "index :: content"和"index ::#content"區(qū)別一樣。
          還可以返回帶參數(shù)的片段:
          @RequestMapping("/showContentPart")
          public String showContentPart() {
              ...
              return "index :: #content ('myvalue')";
          }








          posted on 2014-02-11 16:16 不做浮躁的人 閱讀(23452) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導航:
           

          <2014年2月>
          2627282930311
          2345678
          9101112131415
          16171819202122
          2324252627281
          2345678

          常用鏈接

          留言簿(9)

          隨筆分類(31)

          隨筆檔案(75)

          文章分類(1)

          文章檔案(3)

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 桓台县| 建宁县| 德令哈市| 石棉县| 临城县| 边坝县| 中方县| 屏东县| 安康市| 孝昌县| 喀什市| 贺州市| 衡水市| 南陵县| 施秉县| 雅安市| 黄平县| 宝丰县| 泸溪县| 江油市| 墨脱县| 图木舒克市| 白玉县| 枞阳县| 康平县| 二手房| 澄迈县| 孝昌县| 山西省| 揭东县| 大连市| 兴义市| 娄烦县| 四子王旗| 密云县| 江津市| 灵丘县| 永修县| 通山县| 三原县| 东乌珠穆沁旗|