将HTML表单从jsp移动到ThymeLeaf

时间:2017-09-25 16:47:53

标签: spring-mvc spring-boot thymeleaf

我尝试将此作为参考Serving Static content in SpringBoot

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;

import org.springframework.ui.Model;

/**
 * Created by Eric on 11/25/2015.
 */
@org.springframework.stereotype.Controller
public class Controller {
    @RequestMapping("/appPage")
    public String greeting(@RequestParam(value="name", required=false, defaultValue="World") String name, Model model) {
        model.addAttribute("name", name);
        model.addAttribute("title", "Best Of the App");
        model.addAttribute("basecontext", "Best Of the App");
        return "appPage";
    }
}

我的HTML表单位于

之下
<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <title th:text="${title}" />
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<p th:text="'Hello, ' + ${name} + '!'" />
<input type="hidden" type="text" id="basecontext" value='${basecontext}'/>
</body>
</html>

我正在尝试在隐藏的输入字段中设置值。但这给了我错误

  

org.springframework.web.util.NestedServletException:请求处理失败;嵌套异常是org.thymeleaf.exceptions.TemplateInputException:异常解析文档:template =“appPage”,第9行 - 第33列

我正在尝试将这个在JSP应用程序中加载的html页面移动到Spring Boot + ThymeLeaf。

如果我只是将此内容放在 index.html 中,而不在Controller中使用Context处理程序。页面加载得很好。 Thymeleaf不会抛出任何错误。

1 个答案:

答案 0 :(得分:2)

ThymeLeaf使用xml而不是html,并且不允许在xml type="hidden" type="text"

中使用相同名称的属性

您实际上应该在春季日志中获得SAXParseException: Attribute "type" was already specified for element