日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Thymeleaf –片段和angularjs路由器局部视图

發(fā)布時間:2023/12/3 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Thymeleaf –片段和angularjs路由器局部视图 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

百里香葉許多很酷的功能之一就是能夠渲染模板片段–我發(fā)現(xiàn)這是與AngularJs一起使用的特別有用的功能。

可以將AngularJS $ routeProvider或AngularUI路由器配置為返回不同“路徑”的部分視圖,使用百里香葉返回這些部分視圖確實(shí)效果很好。

考慮一個簡單的CRUD流,用以下方式定義AngularUI路由器視圖:

app.config(function ($stateProvider, $urlRouterProvider) {$urlRouterProvider.otherwise("list");$stateProvider.state('list', {url:'/list',templateUrl: URLS.partialsList,controller: 'HotelCtrl'}).state('edit', {url:'/edit/:hotelId',templateUrl: URLS.partialsEdit,controller: 'HotelEditCtrl'}).state('create', {url:'/create',templateUrl: URLS.partialsCreate,controller: 'HotelCtrl'}); });

上面的templateUrl是激活適當(dāng)狀態(tài)時呈現(xiàn)的部分視圖,這里使用javascript變量定義了這些視圖,并使用thymeleaf模板以這種方式進(jìn)行了設(shè)置(以干凈地將已部署應(yīng)用程序的上下文路徑解析為根路徑):

<script th:inline="javascript">/*<![CDATA[*/var URLS = {};URLS.partialsList = /*[[@{/hotels/partialsList}]]*/ '/hotels/partialsList';URLS.partialsEdit = /*[[@{/hotels/partialsEdit}]]*/ '/hotels/partialsEdit';URLS.partialsCreate = /*[[@{/hotels/partialsCreate}]]*/ '/hotels/partialsCreate';/*]]>*/ </script>

現(xiàn)在,考慮一個片段定義,例如處理列表的一個:

文件:templates / hotels / partialList.html

<!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org" layout:decorator="layout/sitelayout"> <head><title th:text="#{app.name}">List of Hotels</title><link rel="stylesheet" th:href="@{/webjars/bootstrap/3.1.1/css/bootstrap.min.css}"href="http://netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css"/><link rel="stylesheet" th:href="@{/webjars/bootstrap/3.1.1/css/bootstrap-theme.css}"href="http://netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap-theme.css"/><link rel="stylesheet" th:href="@{/css/application.css}" href="../../static/css/application.css"/> </head> <body> <div class="container"><div class="row"><div class="col-xs-12"><h1 class="well well-small">Hotels</h1></div></div><div th:fragment="content"><div class="row"><div class="col-xs-12"><table class="table table-bordered table-striped"><thead><tr><th>ID</th><th>Name</th><th>Address</th><th>Zip</th><th>Action</th></tr></thead><tbody><tr ng-repeat="hotel in hotels"><td>{{hotel.id}}</td><td>{{hotel.name}}</td><td>{{hotel.address}}</td><td>{{hotel.zip}}</td><td><a ui-sref="edit({ hotelId: hotel.id })">Edit</a> | <ang-click="deleteHotel(hotel)">Delete</a></td></tr></tbody></table></div></div><div class="row"><div class="col-xs-12"><a ui-sref="create" class="btn btn-default">New Hotel</a></div></div></div> </div> </body> </html>

關(guān)于百里香葉的偉大之處在于,可以在瀏覽器中打開并預(yù)覽該視圖。 要返回視圖的一部分,在本例中,該部分以“ th:fragment =” content””開頭,我要做的就是將視圖的名稱返回為“ hotels / partialList :: content” !

對于更新和創(chuàng)建視圖,可以遵循相同的方法。

我有一個開放的部分是關(guān)于UI中的uri是“ / hotels / partialsList”如何映射到“ hotels / partialList :: content”,對于Spring MVC,這可以通過一個View Controller輕松完成。一種無需通過Controller返回視圖名稱的方法,可以通過以下方式進(jìn)行配置:

@Configuration public class WebConfig extends WebMvcConfigurerAdapter {@Overridepublic void addViewControllers(ViewControllerRegistry registry) {registry.addViewController("/hotels/partialsList").setViewName("hotels/partialsList::content");registry.addViewController("/hotels/partialsCreate").setViewName("hotels/partialsCreate::content");registry.addViewController("/hotels/partialsEdit").setViewName("hotels/partialsEdit::content");}}

因此,總而言之,您可以使用thymeleaf模板創(chuàng)建完整的html視圖,該模板可以預(yù)覽,并且可以通過在開發(fā)期間在瀏覽器中打開視圖來解決所有渲染問題,然后純粹在運(yùn)行時返回該視圖的相關(guān)部分以返回視圖片段html頁面。

  • 可在此github位置獲得遵循此模式的樣本-https://github.com/bijukunjummen/spring-boot-mvc-test

翻譯自: https://www.javacodegeeks.com/2014/06/thymeleaf-fragments-and-angularjs-router-partial-views.html

總結(jié)

以上是生活随笔為你收集整理的Thymeleaf –片段和angularjs路由器局部视图的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。