当前位置: 首页 > 面试题库 >

从JSF传递Enum值作为参数

洪永长
2023-03-14
问题内容

我试图将现有代码迁移到使用Enum上,由于缺乏Enum的经验,遇到了一些问题。首先是我的结构。在EJBEntity中,我有一个枚举类(不确定它是否是一个类)。

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不是上课

Type在EJB中拥有一个原因,以便可以为我的实体创建一个枚举类型,因此我的查询看起来像这样

select c from X c where c.type = Type.PROFILE_COMMENT

问题答案:

您不能在EL中访问像这样的枚举。但是,JSF内置了用于EL的枚举转换器。您可以只使用枚举名称作为字符串。

<h:commandButton value="Test" action="#{myBean.Test('PROFILE_COMMENT')}" />


 类似资料:
  • 问题内容: 我正在用JavaScript准备一些变量(在我的特定情况下,我想获取GPS位置): 我想通过下面的命令按钮将它们发送到我的托管bean: 如何将JavaScript中的变量和变量发送到JSF托管bean操作方法? 问题答案: 让JS以相同的形式将它们设置为隐藏的输入值。 命令按钮操作方法可以按通常方式将它们作为bean属性进行访问。

  • 我想通过下面的命令按钮将它们发送到我的托管bean: 我如何将和变量从JavaScript发送到JSF托管bean动作方法?

  • 问题内容: 我有3类调用,和。 在我的课程中,我想要一个这样的方法: 因此,例如,我想: 如何将类名作为参数,并基于该类名从类名创建适当的对象? 问题答案: 使用反射是可能的。这里是给定的className(作为字符串传递)。此类将在内存中搜索(应该已经加载)。 作为字符串传递时要实例化的类的名称应 完全限定

  • 我有一个简单的方法,我想把片段名作为参数传递。我几乎没有像这样的碎片 1) AddNewDatesFragment 2) AskFragment 3)免责声明片段 我有下面的代码可以正常工作 我想在方法中编写一些代码,在这里我可以调用这样的方法 等 我曾经尝试过这样的代码,但在if条件下不工作会导致编译时错误。 我对实施这种方法感到好奇。谢谢

  • 问题内容: 我正在开发Java企业应用程序,当前正在执行Java EE安全性工作,以限制对特定用户的特定功能的访问。我配置了应用程序服务器以及所有内容,现在使用RolesAllowed注释保护方法的安全: 当我使用这样的注释时,它可以正常工作: 但这不是我想要的,因为我必须在这里使用String,因此重构变得很困难,并且可能会出现拼写错误。因此,我想使用一个Enum值作为此注释的参数,而不是使用S

  • 我只是想知道如何在Spring Data JPA中将列名及其值传递给@Query注释。 基本上,列名是静态的,我们通常把每个列作为一个元素放在实体类中。但这里我想要一些不同的东西,这里列名将是动态的,我将把这个值作为参数传递给在存储库中定义的方法。 表格-日历 列-id,PersonName,1,2,3......31