【问题标题】:Using enum instance inner class in a jsp在jsp中使用枚举实例内部类
【发布时间】:2015-03-18 17:02:16
【问题描述】:

我正在尝试在 jsp 中使用枚举元素方法。

这是我的枚举:

public enum someEnum {
   INSTANCE {
      public String someMethod() {
          return "yay";
      }
   }
   public abstract String someMethod();
}

在我的jsp中我想做:

${somethingContainingMyEnum.getSomeEnum().someMethod()}

但是,我明白了

类 javax.el.BeanELResolver 不能访问带有修饰符“public”的类...的成员

我找到了一个解决方法,只是做一个间接:

${somethingContainingMyEnum.doSomething()}

public String doSomething {
   return getSomeEnum().someMethod();
}

购买我想在没有间接的情况下这样做。有什么提示吗?

【问题讨论】:

    标签: java jsp enums


    【解决方案1】:

    这是一个奇怪的枚举,它们通常看起来像这样:

    public enum SomeEnum {
      INSTANCE("yay");
      private String myStr;
      SomeEnum(String myStr){
          this.myStr = myStr;
      }
      public String getMyStr(){
      return this.myStr;
      };
    }
    

    然后你会在 JSP 中引用

    ${myBean.EnumInstance.MyStr}
    

    Java 中不存在匿名方法。你在考虑匿名内部类吗?这似乎过于复杂了。

    【讨论】:

    • 我稍微简化了这个案例。我想要不同的实例来计算不同的逻辑,这就是我在实例中实现方法的原因
    • @Guito 使用抽象类或接口代替?
    • 我知道编译时将存在的实例的确切数量。我认为一个类不适合这里。
    猜你喜欢
    • 1970-01-01
    • 2012-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-19
    相关资源
    最近更新 更多