既存のコードをEnumを使用するように移行しようとしていますが、Enumの経験が不足しているため、いくつかの問題が発生します。まず第一に、ここに私の構造があります。私のEJB
には、Entityとともに、列挙型クラスがあります(クラスであるかどうかはわかりません)。
public enum Type {
PROFILE_COMMENT,
GROUP_COMMENT
}
私のマネージドBeanでmyBean.Java
、 私が持っています
@ManagedBean(name="myBean")
@SessionScoped
public class myBean {
private Type type;
public myBean() {
}
public Type getType() {
return type;
}
public void setType(Type type) {
this.type = type;
}
public void Test(Type t){
System.out.println(t);
}
}
それから私のJSFで
<h:commandButton value="Test" action="#{myBean.Test(myBean.type.PROFILE_COMMENT)}" />
Java.lang.ClassNotFoundException:
Type
はクラスではないと言っています
エンティティの列挙型を作成できるようにEJBにType
があるので、クエリは次のようになります。
select c from X c where c.type = Type.PROFILE_COMMENT
ELではそのような列挙型にアクセスできません。ただし、JSFにはEL用の列挙型コンバーターが組み込まれています。列挙型名を文字列として使用できます。
<h:commandButton value="Test" action="#{myBean.Test('PROFILE_COMMENT')}" />