我最近开始使用Spring.io和Spring Boot进行开发,并将Thymeleaf集成到我的web应用程序中。我现在正在尝试使用mvc.uri实现反向路由,但似乎无法使其工作。
package com.twlab.billigalan.controller;
import javax.servlet.http.HttpServletRequest;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.method.annotation.MvcUriComponentsBuilder;
@Controller
public class HomeController {
@RequestMapping("/")
@ResponseBody
public ModelAndView home() {
//String url = MvcUriComponentsBuilder.fromMappingName("HousingLoansController#main").build();
ModelAndView model = new ModelAndView();
//model.addObject("url",url);
model.setViewName("pages/main/home");
return model;
}
@RequestMapping("/server-error")
public String error(HttpServletRequest request, Model model) {
model.addAttribute("errorCode", request.getAttribute("javax.servlet.error.status_code"));
Throwable throwable = (Throwable) request.getAttribute("javax.servlet.error.exception");
String errorMessage = null;
if (throwable != null) {
errorMessage = throwable.getMessage();
}
model.addAttribute("errorMessage", errorMessage);
return "pages/main/error.html";
}
}
这是一个视图:
<html
xmlns:th="http://www.thymeleaf.org"
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
layout:decorator="layouts/master.layout">
<head>
<title>Billiga lån</title>
</head>
<body class="home">
<div class="panel-body" layout:fragment="content">
<a th:href="#{mvc.uri('HomeController#home').build()}">Test</a>
</div>
</body>
</html>
这是主布局:
<!DOCTYPE html>
<html lang="sv"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:th="http://www.thymeleaf.org"
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link href="http://cdn.jsdelivr.net/webjars/bootswatch-sandstone/3.3.2/css/bootstrap.min.css"
th:href="@{/webjars/bootswatch-sandstone/3.3.2/css/bootstrap.min.css}"
rel="stylesheet" media="screen" />
<link rel="stylesheet" type="text/css" href="static/css/main.css" th:href="@{/css/main.css}" />
<link rel="shortcut icon" href="static/favicon.ico" th:href="@{/favicon.ico}" />
<title>Billiga lån</title>
</head>
<body>
<div id="wrapper" class="container">
<div id="header" class="row">
<div class="col-md-4">
<a href="/" id="logo">Billiga lån</a>
<span id="tagline">Billigaste lånen hittar du här!</span>
</div>
<div class="col-md-8"></div>
</div>
<!-- navbar -->
<div class="navbar navbar-default" role="navigation">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed"
data-toggle="collapse" data-target=".navbar-collapse">
<span class="sr-only">Visa meny</span> <span class="icon-bar"></span>
<span class="icon-bar"></span> <span class="icon-bar"></span>
</button>
<a href="/" class="navbar-brand frontpage"><i class="glyphicon glyphicon-home"></i></a>
</div>
<div class="navbar-collapse collapse">
<ul class="nav navbar-nav navbar-left">
<li>
<a href="#">Låna pengar snabbt</a>
</li>
<li>
<a th:href="#{mvc.uri('HousingLoansController#main').build()}">Bolån</a>
</li>
<li>
<a href="#">Bil-lån</a>
</li>
</ul>
</div>
</div>
</div>
<div id="main">
<div id="sidebar" class="col-md-2 panel panel-default" layout:fragment="sidebar">
<div class="panel-heading">Snabbstart</div>
<div class="panel-body">
<aside id="nav_menu-2" class="widget widget_nav_menu">
<div class="menu-sidomeny-container">
<ul id="menu-sidomeny" class="menu">
<li><a href="#">Låna pengar snabbt</a></li>
<li><a href="#">Lån med betalningsanmärkning</a></li>
<li><a th:uri="mvcUrl('HousingLoansController#main')">Bolån</a></li>
<li><a href="#">Bil-lån</a></li>
</ul>
</div>
</aside>
</div>
</div>
<div id="content" class="col-md-8">
<div class="panel panel-default">
<div class="panel-body" layout:fragment="content">
</div>
<!-- /panel-body -->
</div>
<!-- /panel -->
</div>
<!-- /#content -->
<div id="right-sidebar" class="col-md-2 panel panel-default">
<div class="panel-body" layout:fragment="right-sidebar">
</div>
</div>
</div>
<!-- /#main -->
</div>
<!-- /container -->
<div id="pre-footer"> </div>
<!-- /pre-footer -->
<div id="footer"></div>
<!-- /footer -->
<script src="http://cdn.jsdelivr.net/webjars/jquery/2.1.4/jquery.min.js"
th:src="@{/webjars/jquery/2.1.4/jquery.min.js}"></script>
<script src="http://cdn.jsdelivr.net/webjars/bootswatch-sandstone/3.3.2/js/bootstrap.min.js"
th:src="@{/webjars/bootswatch-sandstone/3.3.2/js/bootstrap.min.js}"></script>
</body>
</html>
这是从布局(HousingLoansController
)引用的控制器:
package com.twlab.billigalan.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;
@Controller
public class HousingLoansController {
@RequestMapping("/bolan")
public ModelAndView main() {
ModelAndView model = new ModelAndView();
model.addObject("quickstart",null);
model.setViewName("pages/housing-loans/housing-loans");
return model;
}
}
这是错误消息:
看一下这里的例子。#mvc
是表达式对象,因此必须从thymeleaf表达式中访问,例如:
<a th:href="${#mvc.url('HomeController#home').build()}">Test</a>
请注意,#mvc
包含在${...}
符号中并从其中引用。
有的安全措施起作用,有的不起作用。 如果我的html文件中包含以下内容: 结果是: (->但它不起作用,因为每个人都可以一直看到它) (->按预期工作) (->有效) (->正确) 正如你所看到的,其他人根本没有出现。 html标记如下所示: 我的pom.xml具有以下依赖关系: 我的SecurityConfig如下所示: 所以基本上只要和角色没有任何关系,一切都是正常的。如果它是基于角色的,那么
我有一个Spring启动1.5.9项目,我试图得到thymeleaf布局方言模板工作。 我遵循这里给出的例子 https://ultraq.github.io/thymeleaf-layout-dialect/Examples.html 我已经创建了一个布局。使用以下代码创建html 和一个内容2。包含以下内容的html 我的控制器看起来像 当我访问root我得到一个页面返回只有html从cont
我的应用程序后端使用Spring Boot,前端使用Angular JS。 我使用Thymeleaf来支持多语言。Thymeleaf要求将所有html文件放在名为templates的文件夹下。 在前端,我使用angular的routeProvider重定向页面。代码如下: 在java端,我的WebConfig中有一些ViewController代码。JAVA 登录页面可以工作,但对于仪表板,Ang
问题内容: 我有以下课程: :和: :但是当我用: :我收到错误消息: :有人能对此有所启发吗? 问题答案: 从那以后我就知道了。您需要先运行: java -DoutputDirectory =。-cp。; activejdbc-instrumentation.jar; javassist.jar; activejdbc.jar; activejdbc.instrumentation.Main
我现在正在尝试复制一个名为的数据库。在MySQL命令行客户机中,我正在执行我得到错误消息: 说吧,告诉我我很蠢。我只是需要一些帮助,拜托。