用vs网站开发,建设部网站信息系统,网页游戏代码,专业网页制作的公司thymeleaf片段使用百里香叶许多很酷的功能之一就是能够渲染模板片段–我发现这是与AngularJs一起使用的特别有用的功能。 可以将AngularJS $ routeProvider或AngularUI路由器配置为返回不同“路径”的部分视图#xff0c;使用百里香叶返回这些部分视图确实效果很好。 考虑一… thymeleaf片段使用 百里香叶许多很酷的功能之一就是能够渲染模板片段–我发现这是与AngularJs一起使用的特别有用的功能。 可以将AngularJS $ routeProvider或AngularUI路由器配置为返回不同“路径”的部分视图使用百里香叶返回这些部分视图确实效果很好。 考虑一个简单的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是激活适当状态时呈现的局部视图这里使用javascript变量定义了这些视图并使用thymeleaf模板以这种方式进行了设置以干净地将已部署应用程序的上下文路径解析为根路径 script th:inlinejavascript/*![CDATA[*/var URLS {};URLS.partialsList /*[[{/hotels/partialsList}]]*/ /hotels/partialsList;URLS.partialsEdit /*[[{/hotels/partialsEdit}]]*/ /hotels/partialsEdit;URLS.partialsCreate /*[[{/hotels/partialsCreate}]]*/ /hotels/partialsCreate;/*]]*/
/script 现在考虑一个片段定义例如处理列表的一个 文件templates / hotels / partialList.html !DOCTYPE html
html xmlns:thhttp://www.thymeleaf.org layout:decoratorlayout/sitelayout
headtitle th:text#{app.name}List of Hotels/titlelink relstylesheet th:href{/webjars/bootstrap/3.1.1/css/bootstrap.min.css}hrefhttp://netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css/link relstylesheet th:href{/webjars/bootstrap/3.1.1/css/bootstrap-theme.css}hrefhttp://netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap-theme.css/link relstylesheet th:href{/css/application.css} href../../static/css/application.css/
/head
body
div classcontainerdiv classrowdiv classcol-xs-12h1 classwell well-smallHotels/h1/div/divdiv th:fragmentcontentdiv classrowdiv classcol-xs-12table classtable table-bordered table-stripedtheadtrthID/ththName/ththAddress/ththZip/ththAction/th/tr/theadtbodytr ng-repeathotel in hotelstd{{hotel.id}}/tdtd{{hotel.name}}/tdtd{{hotel.address}}/tdtd{{hotel.zip}}/tdtda ui-srefedit({ hotelId: hotel.id })Edit/a | ang-clickdeleteHotel(hotel)Delete/a/td/tr/tbody/table/div/divdiv classrowdiv classcol-xs-12a ui-srefcreate classbtn btn-defaultNew Hotel/a/div/div/div
/div
/body
/html 这里关于百里香叶的伟大之处在于可以在浏览器中打开并预览该视图。 要返回视图的一部分在这种情况下该部分以“ thfragment ” content””开头我要做的就是将视图的名称返回为“ hotels / partialList :: content” 对于更新和创建视图可以遵循相同的方法。 我有一个开放的部分是关于UI中的uri是“ / hotels / partialsList”如何映射到“ hotels / partialList :: content”使用Spring MVC可以很容易地通过一个View Controller来完成。一种无需通过Controller返回视图名称的方法可以通过以下方式进行配置 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);}} 因此总而言之您可以使用百里香模板创建一个完整的html视图可以预览该模板并通过在开发期间在浏览器中打开视图来解决所有渲染问题然后纯粹在运行时返回该视图的相关部分以返回视图片段html页面。 可在此github位置获得遵循此模式的样本-https://github.com/bijukunjummen/spring-boot-mvc-test 翻译自: https://www.javacodegeeks.com/2014/06/thymeleaf-fragments-and-angularjs-router-partial-views.htmlthymeleaf片段使用