2017-08-10 30 views
0

フィールドテキストを持つエンティティを永続化しました。テキストの中には、置き換える部分があります。 myEntity.text:Thymeleaf#strings.replace with regex and th:fragment

some text 
twoImages[12_v13.PNG, 10_v6.PNG] 
text text text 
twoImages[12_v13.PNG, 10_v6.PNG] 
<h1>And HTML</h1> 

したがって、私はth:utextのようなものを使用したいと考えています。しかし、置き換えられたイメージブロックでは、フラグメント:フラグメント(〜15ライン/フラグメント)。

出力は次のようにする必要があります:

some text 
<img .. 12_v13.PNG /> 
<br /> 
<img .. 12_v13.PNG /> 
<additional html /> 
text text text 
<img .. 12_v13.PNG /> 
<br /> 
<img .. 12_v13.PNG /> 
<additional html /> 
<h1>And HTML</h1> 

Thymeleafでこれを実現するためにどのように?

答えて

1

フィールドのテキスト全体が単一の文字列の場合は、正規表現マッチャーまたは生成されたパーサーを使用して解析する必要があります。たとえば、[12_v13.PNG、10_v6.PNG]を解析する必要があります。 \\ [([^、)、\\ s([^ \\]] *)] 最初のグループは12_v13.PNG、2番目のグループは10_v6.PNGです。

imgタグのsrcプロパティの各画像へのパスを指定する必要があります。 あなたは結果をこのように実現することができます。

<img th:src="@{/images/test.png}" /> 

画像フォルダは、プロジェクトのWebアプリケーションフォルダ内にある/ことを、暗示されます。

<img th:src="@{/resources/images/Picture.png}" /> 

出力として:

<img src="/resources/image/Picture.png" /> 

あなたがあなたのブラウザでhttp://localhost:8080/myapp/resources/images/Picture.pngを襲ったとき、あなたは仕事をする上での構文のための画像にアクセスすることができるはずです。

このリンクは便利です:Standard URL Syntax

私thymeleafデモプロジェクトを見てください:demo project(テンプレートとフォルダが開かれます)あなたはプロジェクト構造とthymeleafテンプレートの例のデータを見つけることができます。

+0

ありがとうございます!私はレイヤーにもっと関心があります、私はエンジンがそれを(パース)することを望みます。 imgへのパスは他のqです。そのようなタスクは標準でなければならないが、私はカスタムタグのようなことをすると思う。 ? – Shklyar