【问题标题】:Evaluate multiple expressions in a Thymeleaf attribute评估 Thymeleaf 属性中的多个表达式
【发布时间】:2016-12-19 11:45:21
【问题描述】:

我对 Thymeleaf 有点陌生,如果这是一个新语法错误,我深表歉意。 我试图让 Thymeleaf 在同一个 th:with 属性中执行多个语句。

<div th:with="url = ${#httpServletRequest.getRequestURL()}, url = ${url.substring(0, url.indexOf('error'))}"></div>

但这不是正确的语法。

org.thymeleaf.exceptions.TemplateProcessingException:无法解析为分配序列:“url = ${#httpServletRequest.getRequestURL()},url = url.substring(0, url.indexOf('error'))”(错误/404:11)

这可能吗?如果可以,我想要完成的正确语法是什么?

编辑:我已修复以下部分中的语法错误,现在我遇到了另一个错误。

尝试将其分成两部分,但随后在 SpringEL 表达式中似乎没有正确填充 url 变量。

<div th:with="url = ${#httpServletRequest.getRequestURL()}">
    <div th:with="url = ${url.substring(0, url.indexOf('error'))}"></div>
</div>
org.thymeleaf.exceptions.TemplateProcessingException:无法解析为分配序列:“url = ${url.substring(0, url.indexOf('error')})”(error/404:12)

引起:java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:-1

【问题讨论】:

  • 可以试试不带空格的:)
  • 你遇到了什么错误?
  • 我认为您的第二个示例没有任何问题。如果您的 url 变量中没有字符串“error”,它会返回 -1,这会导致 url.substring 因您看到的错误而失败。

标签: html spring-mvc thymeleaf


【解决方案1】:

我会参考第二个版本。

http://www.tutorialspoint.com/java/java_string_indexof.htm

int indexOf(String str):返回此字符串中第一次出现指定子字符串的索引。如果它不作为子字符串出现,则返回-1

所以我认为error 没有发生。

那你正在尝试做

url.substring(0,-1)

你得到一个错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-02-22
    • 2017-04-20
    • 2012-12-27
    • 1970-01-01
    • 1970-01-01
    • 2015-01-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多