1、@ModelAttribute
功能,註冊以及別名,如@ModelAttribute("testData") Usertest testData,意思是將Usertest 對象註冊一下,並且前台訪問的別名為testData
後台用法:
//傳遞參數@ModelAttributetestData.setUsename("測試@ModelAttribute擷取"); thymeleaf 頁面擷取:
@ModelAttribute testData : <div th:text="${testData.usename}"></div> <br/>thymeleaf js擷取
var temp3 = [[${testData.usename}]]; //傳遞參數@ModelAttributealert("-----傳遞參數@ModelAttribute-----:"+temp3); 2、 Model
類似一個map集合,將後台資料放入map集合中,傳遞給前台,跟struts中寫map一樣,只不過這裡固定了類型叫Model,前台跟struts的map不一樣了,到達前台時給拆分了,比如我放入一個aa,前台不是map.aa,而且直接aa
後台用法:
//傳遞參數Modelmodel.addAttribute("modelData", "測試model擷取");前台用法:
傳遞參數Model : <div th:text="${modelData}"></div><br/> js擷取:
alert("-----傳遞參數HttpServletRequest:"+temp1);var temp2 = [[${modelData}]]; //傳遞參數Model 3、 HttpServletRequest
這個常用,放入方法的輸入參數中
後台用法:
//傳遞參數HttpServletRequestrequest.setAttribute("requestTestData", "測試request資料"); thymeleaf頁面用法:
傳遞參數HttpServletRequest : <div th:text="${requestTestData}"></div><br/>thymeleaf js用法:
var temp1 = [[${requestTestData}]]; //傳遞參數HttpServletRequestalert("-----傳遞參數HttpServletRequest:"+temp1);
demo:
/** * 初始化方法,這裡預設不查詢資料 * @param dc * @return */@RequestMapping({ "/" })//跳轉頁面不需要@responseBodypublic String init(@ModelAttribute("responseData") DataCenter dc,@ModelAttribute("testData") Usertest testData,Model model,HttpServletRequest request) {dataWrap.getPageInfo().setRowOfPage(15);//傳遞參數@ModelAttributetestData.setUsename("測試@ModelAttribute擷取");//傳遞參數Modelmodel.addAttribute("modelData", "測試model擷取");//傳遞參數HttpServletRequestrequest.setAttribute("requestTestData", "測試request資料");//設定參數String query_Date = "2018-02-05 00:00:00";model.addAttribute("query_Date", query_Date);//擷取查詢條件裡的交易月份,由於擷取到的是2018-01-25 00:00:00 格式 需要轉化為201801 故作此處理QueryParamList paramQueryParamList = new QueryParamList(); paramQueryParamList.addParam("gdYjysbmJyyf","201802");return "gd/yjydlsb.html";}
<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org"><head><template th:substituteby="framework/pageset.html"></template></head><body><div id="app" view>@ModelAttribute testData : <div th:text="${testData.usename}"></div> <br/>傳遞參數Model : ${modelData} [[${modelData}]]<div th:text="${modelData}"></div><br/>傳遞參數HttpServletRequest : <div th:text="${requestTestData}"></div><br/></div><script th:inline="javascript">var dealFlag = "1";var vm = new Vue({el : "#app",data : {accountCode:"", begintime:"", endtime:"", ipAddress:"", onlineFlag:""},mounted : function(){//頁面載入完成後執行myTable.setData(response.getAjaxDataWrap("dataWrap"));$("#dataTotal").html("請選擇交易月份");//設定時間var s =[[${query_Date}]];s = s.replace(/-/g,"/");var date = new Date(s );this.begintime=date;//接收參數var temp1 = [[${requestTestData}]]; //傳遞參數HttpServletRequestalert("-----傳遞參數HttpServletRequest:"+temp1);var temp2 = [[${modelData}]]; //傳遞參數Modelalert("傳遞參數Model-----:"+temp2);var temp3 = [[${testData.usename}]]; //傳遞參數@ModelAttributealert("-----傳遞參數@ModelAttribute-----:"+temp3);},methods : {query: function(){},report: function(){}}});function nextpage(){vm.query();}</script></body></html>