2010-02-12 88 views
10

Tôi có hai dây mà tôi cần phải so sánh, nhưng ngay cả khi họ có giá trị giống và khác nhau, nó luôn vào báo cáo kết quả ...chuỗi So sánh với JSTL

<c:when test="#{bean.name1 != bean.name2}"> 
    fields that are supposed to appear _only_ when name1 is different from name2 
</c:when> 

Trả lời

7

Vấn đề là bạn có lẽ không quấn khi trong một thẻ chọn.

nếu bạn có:

<c:choose> 
    <c:when test="${bean.name1 != bean.name2}"> 
     fields that are supposed to appear _only_ when name1 is different from name2 
    </c:when> 
</c:choose> 

Nó sẽ làm việc

+0

vâng, bạn đã đúng! :) tôi đã quên thẻ . haha. – Moon13

+0

Không có vấn đề gì vui khi được giúp đỡ! –

-1

Hãy thử này ...

<c:if test="${bean.name1 ne bean.name2}"> 
    fields that are supposed to appear _only_ when name1 is different from name2 
</c:if> 

ne = không bằng

Cũng

# sẽ là $

+0

Xin chào, tôi đã thử với $ nhưng nó hoạt động. tôi đã phải thay đổi thẻ C: IF. Cảm ơn. – Moon13

+0

ok, chỉ cần nhận ra nó phải là c: nếu quá - tôi không hiểu câu hỏi ban đầu của bạn – Zinc

-1

nó nên được lĩnh vực mà có nghĩa vụ phải chỉ xuất hiện khi name1 là khác nhau từ name2

+0

có, các trường sẽ chỉ xuất hiện khi chúng khác nhau. Vấn đề là ngay cả khi chúng có cùng giá trị, nó đi vào câu lệnh , nhưng nó không được giả định. – Moon13

+0

Tôi cũng đã cố gắng làm điều này nhưng nó là kết quả tương tự. – Moon13

4

nó nên được?

<c:if test="#{bean.name1 != bean.name2}"> 
    // code 
</c:if> 

EDIT: <c:when> được cho là nằm trong <c:choose>. Không thể hỏi tại sao, đó chỉ là cú pháp. Nó giống như yêu cầu tại sao if sẽ không hoạt động thay cho switch trong C/C++/Java. Chúng chỉ là những động vật khác nhau.

+2

Không nếu nó được bọc trong một thẻ

+1

có! Tại sao C: khi không hoạt động ??? – Moon13

+0

# phải là $ ... – Zinc

0

Liệu nó thực hiện bất kỳ sự khác biệt nếu bạn làm điều này:

<c:when test="${bean.name1 != bean.name2}"> 
    fields that are supposed to appear _only_ when name1 is different from name2 
</c:when> 
+0

có, tôi đã thử điều này và nó có cùng kết quả. Tôi đã đổi nó thành c: Nếu bây giờ nó đã hoạt động. Nhưng tôi không hiểu tại sao nó không hoạt động với c: Khi ... – Moon13

0

tôi đã nhận thấy một số flakiness khi sử dụng c: nếu hay c: chọn và c: khi bên trong một số thành phần lặp JSF, chẳng hạn như giàu: bảng dữ liệu. Ngữ cảnh đầy đủ là gì?

Như một giải pháp thay thế, tôi thường phải bọc mọi thứ vào a4j: outputPanel và đặt thuộc tính được hiển thị tương ứng.

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