Thymeleaf将#locale表达式对象与字符串进行比较

时间:2015-05-27 13:35:53

标签: conditional locale thymeleaf spring-el

我想使用表达式对象#locale根据上下文语言环境设置th:class属性。

我试过了

th:class="${#locale}=='en'?'active':''"
th:class="${#locale=='en'}?'active':''"

它们都导致错误,但是当我用th:text =" $ {#locale}打印它时,我得到了正确的语言环境代码(en,es)。

如何将#locale对象与区域设置代码进行比较?

3 个答案:

答案 0 :(得分:9)

根据answer发布的David_Garcia,我可以这样解决我的问题:

ImageView imageBtnUp = (ImageView) view.findViewById(R.id.imageBtnup);
ImageView imageBtnDown = (ImageView) view.findViewById(R.id.imageBtndown);

imageBtnUp.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View view) {
// apply your functionality here for first button
                        Toast.makeText(mContext, "clicked",Toast.LENGTH_SHORT).show();

                    }
                });

imageBtnDown.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View view) {
// apply your functionality here for Down button
                        Toast.makeText(mContext, "clicked",Toast.LENGTH_SHORT).show();

                    }
                });

答案 1 :(得分:3)

这是我在很久以前告诉过thymeleaf家伙的问题。

在将其与“en”进行比较之前,您需要首先解析#locale。 您可以在开始时添加2个下划线并结束要首先解析的表达式。在你的情况下将是这样的:

th:call="$({__#locale__}=='en'?'active':'')"

答案 2 :(得分:0)

我喜欢这个

th:text="${#locale.toString()}=='in'?'active':'inactive'"