2012-11-14 36 views
8

Điều kiện Java sau đây chuyển thành s:if test="..." trong struts2 như thế nào?struts2: enum in IF

if(company.getAffiliateId().asInt() != com.foo.bar.Affiliates.XYZ.asInt()){ 
// do something 
} 

company.getAffiliateId() lợi nhuận BigDecimal

com.foo.bar.Affiliates là một enum

này không hoạt động:

<s:if test="%{company.affiliateId.asInt() != com.foo.bar.Affiliates.XYZ.asInt() }"> 
    alert("do something"); 
</s:if> 

Trả lời

8

Sử dụng toString để so sánh enums.

<s:if test="ENUM.toString() == 'some_enum_as_string'"> 

Và nếu bạn muốn sử dụng enums trong JSP

<s:if test="@[email protected]() == 'some_enum_as_string'"> 
4

Got nó, điều này làm việc cho tôi:

<s:if test="%{company.affiliateId != @[email protected]() }"> 
+0

Tôi nghĩ lớp enum được tạo ra dựa trên một bảng cơ sở dữ liệu. Không có phương thức tĩnh trong nó: id int riêng; Chi nhánh riêng tư (int id) {this.id = id; } Công khai BigDecimal asBigDecimal() {return BigDecimal.valueOf (id); } int công khai asInt() {return id; } –

+0

Hmm .. bạn nói đúng. Đã xóa phần sai câu trả lời của tôi. –