使用thymeleaf时遇到的一些问题

最近一直在使用spring boot,所以自然而然的使用了thymeleaf,但是我想说习惯了jsp之后使用thymeleaf真实觉得不顺手,在使用thymeleaf中也遇到了一些问题,在这里记录一下,应该还是挺有用的,呵呵…

  • 问题一:org.xml.sax.SAXParseException: 元素类型 “input” 必须由匹配的结束标记 “” 终止。

这是最简单的一个问题,用过的,都知道,一般input遇到这种问题比较多。解决方法很简单,加上’/'就行了。

  • 问题二:org.xml.sax.SAXParseException: 在实体引用中, 实体名称必须紧跟在 ‘&’ 后面。

在thymeleaf的js中使用&,<,>等符号时会产生这种问题,即使转义也不行,解决方法:将你的js代码包裹在<![CDATA[ ]]>之中即可,like this:<script>//<![CDATA[ js代码 //]]></script>,详情参考:http://blog.csdn.net/lijiaojiao123123/article/details/44954667

  • 问题三:如果你需要在js代码中使用thymeleaf的表达式获取你后端传的值

解决方法:<script type="text/javascript" th:inline="JavaScript"></script>,加上 th:inline="JavaScript"标签即可,在获取值时这样写,var user = [[${user}]],注意无需加引号,而这样获取到的数据已经是一个json对象了,很方便.。

  • 问题四:你很可能在写这样的代码:$("#select").append("<option value='"+value+"'>"+text+"</option>");时报这样的错:SyntaxError: missing ) after argument list

解决方法:不要用""(双引号)包裹’’(单引号),而要使用’’(单引号)包裹""(双引号)即可

  • 问题五:生成动态的class,而且还是多个,当时因为用到了treegrid树形插件,所以需要动态的生成class,但是这个让我当时摸索好一会儿

解决方法:注意不要这样写:<tr th:class="'treegrid-'+${item.sid} 'treegrid-parent-'+${item.pSid}">,要这样写:<tr th:class="'treegrid-'+${item.sid}" th:classappend="'treegrid-parent-'+${item.pSid}">

暂时只遇到以上这些问题,未完待续…

  • 6
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
如果你在使用 Thymeleaf 遇到了页面报错,可以查看控制台输出的错误信息,找到具体的问题所在。常见的错误包括语法错误、模板引用错误、标签使用错误等等。 如果你想利用 Thymeleaf 自定义错误页面,可以按照以下步骤进行: 1. 首先在 `src/main/resources/templates` 目录下创建一个 `error` 目录。在该目录下创建一个名为 `error.html` 的 Thymeleaf 模板文件。 2. 在 `application.properties` 文件配置错误处理的地址: ``` server.error.path=/error ``` 3. 创建一个名为 `ErrorController` 的控制器类,用于处理错误请求: ```java @Controller public class ErrorController implements org.springframework.boot.web.servlet.error.ErrorController { @RequestMapping("/error") public String handleError(HttpServletRequest request, HttpServletResponse response) { // 获取错误状态码 Integer statusCode = (Integer) request.getAttribute("javax.servlet.error.status_code"); // 根据状态码返回不同的错误页面 if (statusCode == 404) { return "error/404"; } else { return "error/500"; } } @Override public String getErrorPath() { return "/error"; } } ``` 4. 在 `error` 目录下创建 `404.html` 和 `500.html` 两个 Thymeleaf 模板文件,用于显示不同类型的错误页面。 例如,`404.html` 可以这样编写: ```html <!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="UTF-8"> <title>404 Not Found</title> </head> <body> <h1>404 Not Found</h1> <p>您请求的页面不存在,请检查您输入的地址是否正确。</p> </body> </html> ``` 5. 访问不存在的页面,尝试触发 404 错误,可以看到自定义的错误页面。 如果你想测试 500 错误,可以在控制器抛出一个异常,例如: ```java @RequestMapping("/test") public String test() { throw new RuntimeException("测试错误"); } ``` 然后访问 `/test` 地址即可。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值