Thymeleaf国际化(i18n)和html标签

时间:2017-11-28 15:17:47

标签: spring-mvc internationalization thymeleaf

我有html代码,必须用不同的语言生成。

Click <a href="https://here">here</a> 
Kliknij <a href="https://here">tutaj</a>

如果使用i18n和Thymeleaf假设url是用户输入?如何处理这个简单的例子?

我试试:

messages.click_here = Click <a href="{0}">here</a>

然后在百里香中:

<span th:text="#{messages.click_here(${url})}"></span>

但是我的代码不会被解释为HTML

所以我可以使用utext

<span th:utext="#{messages.click_here(${url})}"></span>

但是现在我的应用程序暴露在代码注入中。有人可以通过${url}传递恶意参数,关闭标记并生成js。 utext可以做任何事情。

最佳解决方案是什么?

1 个答案:

答案 0 :(得分:0)

也许最好将 Timeline clock = new Timeline(new KeyFrame(Duration.ZERO, e -> { Calendar cal = Calendar.getInstance(); int second = cal.get(Calendar.SECOND); int minute = cal.get(Calendar.MINUTE); int hour = cal.get(Calendar.HOUR_OF_DAY); eski_minut = minute; if(second < 10){ time_label.setText(hour + ":" + (minute) + ":0" + second); }else if (minute < 10){ time_label.setText(hour + ":0" + (minute) + ":0" + second); } else { time_label.setText(hour + ":" + (minute) + ":" + second);} }), new KeyFrame(Duration.seconds(1)) ); clock.setCycleCount(Animation.INDEFINITE); clock.play(); } 划分为2个消息字符串?

Click <a href="https://here">here</a>