2012-11-14 20 views
8

次のJava条件はs:if test="..."struts2にどのように変換されますか?struts2:IFの列挙型

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

company.getAffiliateId()戻りBigDecimal

com.foo.bar.Affiliatesこれは動作しませんenum

です:

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

答えて

8

使用toString比較する方法enums

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

そして、あなたはJSP

enumsを使用したい場合は
<s:if test="@[email protected]() == 'some_enum_as_string'"> 
4

はそれを手に入れた、これは私の作品:

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

私は列挙型クラスは、データベースのテーブルに基づいて生成されたと思います。静的メソッドはありません:private int id; 私的アフィリエイト(int id){this.id = id; } public BigDecimal asBigDecimal(){BigDecimal.valueOf(id)を返します。 } public int asInt(){戻り値; } –

+0

うーん..あなたは正しい。私の答えの間違った部分を削除しました。 –