1. 程式人生 > >html如何使用springboot進行跳轉

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。