2012-05-29 20 views
40

==eq cho kết quả tương tự sử dụng EL để làm các xét nghiệm so sánh chuỗi của tôi:Tôi có nên chọn == hoặc eq để so sánh chuỗi trong EL không?

<c:if test="${person.sokande_i == 'endast_usa'}">Endast USA</c:if> 
    <c:if test="${person.sokande_i == 'alla'}">Alla länder</c:if> 
    <c:if test="${person.sokande_i == 'alla_utom_usa'}">Alla utom USA</c:if> 

Tôi có nên sử dụng eq để thay thế? Chỉ == cho các số nguyên? Nhưng nó cũng hoạt động cho dây. AFAIK == kiểm tra xem hashCodes có bằng nhau không và eq có nghĩa là "có ý nghĩa khác".

Khác question nói ==eq cũng làm như vậy.

Ở đây không có sự khác biệt? IS không phải là sự khác biệt mà tôi đang nêu rõ: == xem mã băm và eq xem xét việc triển khai equals(...).

+2

Nó nói == và 'eq' làm điều tương tự, vì vậy chúng cũng làm tương tự. – EJP

Trả lời

38

Cả hai đều giống nhau. Tôi sử dụng eq trong EL vì nó dễ đọc hơn như một câu.

23

Cả hai đều giống nhau. Cả hai ==eq sẽ dẫn đến đoạn mã sau:

jspContext.findAttribute("person.sokande_i").equals("endast_usa") 

cho EL

${person.sokande_i == 'endast_usa'} 
+0

Cảm ơn bạn đã trả lời. –

20

Theo documentation, đó là điều tương tự

Ngoài việc. và [] các nhà khai thác được thảo luận trong giá trị gia tăng và Phương pháp Expressions, EL cung cấp các nhà khai thác sau, có thể được sử dụng trong chỉ biểu rvalue:
[...]
Relational: ==, eq, =, ne, <, lt,>, gt, < =, ge,> =, le. So sánh có thể được thực hiện so với các giá trị khác hoặc so với các giá trị Boolean, string, integer hoặc floating-point literals.

Một điểm khác biệt: các toán tử chuỗi như là an toàn XML, chúng không cần phải được thoát như <= chẳng hạn.

Nó giải thích here

Một tính năng hữu ích của EL là khả năng thực hiện so sánh, hoặc giữa các số hoặc các đối tượng. Tính năng này được sử dụng chủ yếu cho các giá trị của thuộc tính thẻ tùy chỉnh, nhưng có thể được sử dụng để viết kết quả của so sánh (đúng hoặc sai) cho trang JSP. EL cung cấp các nhà khai thác sau so sánh:

• == hoặc eq
• = hay ne
• < hoặc lt
•> hoặc gt
• < = hoặc le
•> = hoặc ge

Phiên bản thứ hai của mỗi toán tử tồn tại để tránh phải sử dụng tham chiếu thực thể trong cú pháp XML JSP; tuy nhiên, hành vi của các toán tử là như nhau.

Các vấn đề liên quan