

Springbootのコントローラーから以下で変換した値をHTML5で表示しようとしています。

[code]

    String text = "\100です。"
    String disp = text.replaceAll("\\\\", "&yen;");
    
[/code]

→ `"&yen;100です。"`

これをHTML5側で表示したいのですが、変化しません…。  
そのまま「`&yen;100です。`」と表示されてしまいます。

[code]

    <div class="start-message">
        <span th:id="disp" th:text="${disp}"></span>
    </div>
    
[/code]

なにか良い方法はないでしょうか。


CC BY-SA 3.0
2016-08-23T17:05:02.440
28454
2016-08-25T10:18:13.173
2016-08-25T10:18:13.173
3054
12842
question
java spring-boot thymeleaf
エスケープシーケンスの文字をブラウザに表示したいです。


Spring Boot のことはさっぱり知りませんが、おそらく変数 `text` も `disp` も HTML
のソースではなく、単なる文字列です。一般の文字列中で HTML の実体参照 `&yen;` に特別な意味はなく、HTML を生成するときに
`&amp;yen;` のようにエスケープされているのだと思われます。

実体参照を使わずに、文字 U+00A5 を直接入れればよいと思われます。

[code]

    String disp = text.replaceAll("\\\\", "\u00A5");
    
[/code]


CC BY-SA 3.0
2016-08-23T23:12:48.293
28456
2016-08-25T08:54:46.717
2016-08-25T08:54:46.717
3475
3475
28454
answer


「¥」でしたらHTMLにおいて特別な意味がないと思いますので、int32_tさんの回答のように、ただそのまま含めればよいと思います。

HTMLで意味を持つ記号や実体参照をエスケープさせずにそのままHTML中に挿入したいのでしたら、各テンプレートごとに方法が用意されていますから、それを使う事になります。

> ThymeleafでXHTMLタグをエスケープせずに表示したいのであれば、違う属性を使用しなければなりません: th:utext (“unescaped
> text”用):  
>
> [エスケープなしのテキスト](http://www.thymeleaf.org/doc/tutorials/2.1/usingthymeleaf_ja.html#%E3%82%A8%E3%82%B9%E3%82%B1%E3%83%BC%E3%83%97%E3%81%AA%E3%81%97%E3%81%AE%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88)


CC BY-SA 3.0
2016-08-25T10:09:04.810
28485
2016-08-25T10:09:04.810
3054
28454
answer