Thymeleaf เปรียบเทียบวัตถุนิพจน์ #locale กับสตริง

ฉันต้องการตั้งค่าแอตทริบิวต์ th:class ขึ้นอยู่กับสถานที่บริบทโดยใช้วัตถุนิพจน์ #locale

ฉันเหนื่อย

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

ผลลัพธ์ทั้งคู่เป็นเท็จ แต่เมื่อฉันพิมพ์ด้วย th:text="${#locale} ฉันได้รหัสสถานที่ที่ถูกต้อง (en,es)

มีความคิดใดที่จะเปรียบเทียบวัตถุ #locale กับรหัสสถานที่ได้อย่างไร


person Armando Pérez    schedule 27.05.2015    source แหล่งที่มา


คำตอบ (3)


อ้างอิงจาก answer โพสต์โดย David_Garcia ฉันสามารถแก้ไขปัญหาได้ด้วยวิธีนี้:

th:class="__${#locale}__=='en'?'active':''
person Armando Pérez    schedule 28.05.2015

นี่เป็นปัญหาที่ฉันบอกกับพวก thymeleaf เมื่อครั้งก่อน

คุณต้องแก้ไข #locale ก่อนจึงจะเปรียบเทียบกับ "en" คุณสามารถทำได้โดยเพิ่มขีดล่าง 2 อันที่จุดเริ่มต้นและสิ้นสุดนิพจน์ที่คุณต้องการแก้ไขก่อน ในกรณีของคุณจะเป็นดังนี้:

th:call="$({__#locale__}=='en'?'active':'')"
person David_Garcia    schedule 28.05.2015
comment
คุณถูกต้องเกี่ยวกับการแก้ไขนิพจน์ก่อน แต่วิธีที่คุณระบุไม่ได้ผลสำหรับฉัน ฉันใช้สิ่งนี้แทน: th:class="__${#locale}__=='en'?'active':'' และใช้งานได้! ขอบคุณ! - person Armando Pérez; 28.05.2015

ผมใช้แบบนี้ครับ

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