2016-08-12 25 views
0

私はThymeleafには少し新しく、これはnewbの構文ミスであるとお詫び申し上げます。 Thymeleafに同じth:with属性の複数の文を実行させようとしています。Thymeleafの属性で複数の式を評価する

<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)

これが可能ですか、もしそうなら、私が達成しようとしているものの正しい構文は何ですか?

EDIT:私が修正した下の部分に構文エラーがあり、今は別のエラーが発生しています。

2つに分割しましたが、url変数がSpringEL式に正しく入力されていないように見えます。

<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( 'エラー')})"(エラー/ 404。 12)

発生原因:java.lang.StringIndexOutOfBoundsException:文字列インデックスが範囲外です。-1
+0

恐らくスペースなしで試してみてください:) – ACV

+0

どのようなエラーが表示されますか? – ACV

+1

私はあなたの2番目の例に何か間違っているとは思わない。 url変数の文字列に "error"が含まれていない場合は、-1を返します。これは、** url.substring **があなたが見ているエラーで失敗する原因となります。 – Metroids

答えて

0

2番目のバージョンを参照します。

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

int indexOf(String str)は:指定された部分文字列が最初に出現する、この文字列内のインデックスを返します。部分文字列として出現しない場合は、-1が返されます。

だから私はerrorが発生しなかったと思います。

次に、あなたは

url.substring(0,-1) 

をやろうとしているとエラーが発生します。