评估Thymeleaf属性中的多个表达式

时间:2016-08-12 12:46:02

标签: html spring-mvc thymeleaf

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

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

但这不是正确的语法。

org.thymeleaf.exceptions.TemplateProcessingException:无法解析为赋值序列:&#34; url = $ {#httpServletRequest.getRequestURL()},url = url.substring(0,url.indexOf(&#39;错误&#39;))&#34; (误差/ 404:11)

这是可能的,如果是的话,我试图完成的正确语法是什么?

编辑:我修复了以下部分的语法错误,现在我收到了不同的错误。

尝试将其分成两部分,但后来看来url变量未在SpringEL表达式中正确填充。

<div th:with="url = ${#httpServletRequest.getRequestURL()}">
    <div th:with="url = ${url.substring(0, url.indexOf('error'))}"></div>
</div>
org.thymeleaf.exceptions.TemplateProcessingException:无法解析为赋值序列:&#34; url = $ {url.substring(0,url.indexOf(&#39; error&#39;)})&#34; (错误/ 404:12)

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

1 个答案:

答案 0 :(得分:0)

我将参考第二个版本。

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

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

所以我认为error没有发生。

然后你正在尝试

url.substring(0,-1)

你得到一个错误。