html如何使用springboot進行跳轉
問題:頁面之間的跳轉,通常帶有值的傳輸,但是,在現在比較流行的SPRING MVC WEB 開發模型中,設計機制導致頁面之間的直接接跳轉和傳值不被支援(網上看到的,沒有深究), 但是如果我麼要實現兩個頁面之間傳值怎麼實現呢?
值的傳遞: 將值name從A.html傳給controller,讓後讀取這個值,增加到model裡,然後,B.html從model中讀取處理
A. html 如何將name值傳過去 方法一:使用傳統的方法,如下,
<a href=”/controller_link?staff_name=?> 1 資料不重要並且資料不多時候,可以用,程式碼如下:
'</td><td><a href ="/attendance/calendar?staff_name='+ data.content[key].name +'"> ' + typeStyle(examine) + " </a> </td></tr>" 1 上面的格式不需要看,只是這是我的程式碼,這是一個例子,在這裡使用javascript來構建table,如果需要看,則結合上下文來看,詳細請看我的博文:JAVASCRIPT構建TABLE。
方法二:使用ajax,使用點選動作,點選後,呼叫ajax 函式,將函式傳給controller,ajax使用普通的傳送和接收資料格式:程式碼如下
var staff_name2=$("#staff_name2").val(); alert(staff_name2); $.ajax({ type : 'get', url : "./getdatasrcInser", async : true, dataType : 'json', error: "重新請求", data:{ 'staff_name_new':staff_name2 }, Success:function(){}, Error:function(){} }); 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 url 是controller 中的一個Requestmapping連結。 下面是controller中程式碼,將獲得到的引數,新增到controller要轉到的B.html。
@RequestMapping("/calendar") public String Calendar( Model model,@RequestParam(value = "staff_name", required = false, defaultValue = "") String staff_name) {
/*List<CalendarTa> lists=calendarTaRepository.findAllByName("aa"); model.addAttribute("lists", lists);*/ model.addAttribute("staff_name", staff_name); return "B.html" } 1 2 3 4 5 6 7 8 9 10 @直到staff_name程式碼部分表示獲取傳來的引數的部分,value表示傳來的id,其他的一樣就行(什麼意思,現在也不知道),String staff_name 表示在這裡被定義出來的形參。值和staff_name的值一樣。
那麼我們如何在B.html中獲取staff_name屬性的值呢? 兩個方法: 方法一(最通用的方法) 思路:在HTML body中定義一個屬性,或者標籤什麼都可以,給定id,或者屬性什麼都可以,按時要JAVASCRIPT 可以找的到。程式碼如下:
<input type="hidden" th:value="${staff_name}" id="staff_name2"/> 1 ${staff_name} javascript,讀取staff_name的值,然後在javascript中讀取出id為staff_name2的值,其程式碼如下:
var staff_name2=$("#staff_name2").val(); 1 剩下就可以使用staff_name了。 方法二:涉及到Thymeleaf 的使用,上面的th:value 也使用到了thymeleaf,普通的只要value就可以了。 程式碼如下,不要設計屬性,可以直接引用下面的程式碼就可以了
<script th:inline="javascript"> /*<![CDATA[*/ var staff_name = /*[[${staff_name}]]*/; /*]]>*/ </script> 1 2 3 4 5 6 只需改變staff_name到你定義的屬性名稱就可以,當然前提是得知道如何使用thymeleaf。