我有一些jxpath,我想将它们放在枚举中,我将使用一个映射与JSF页面共享,该映射将使EL可以将它们用作jxpath进行createPathAndSetValue的键。
然后,我可以轻松地填写模型,而无需创建大量的吸气剂和吸气剂。
像这样:
<h:inputText value="#{backingBeanMap[backingBeanMap.billingAddress_postalCode]}" />
我有这样的东西
public enum MWField {
isGiftJoin,
billingAddress_postalCode,
...
associates$3_memberInfo_membershipType_type;
public final String xpath;
MWField(){
this.xpath = name().replace('_', '/').replace("$0", "[0]")
.replace("$1", "[1]").replace("$2", "[2]")
.replace("$3", "[3]").replace("$4", "[4]")
.replace("$5", "[5]").replace("$6", "[6]")
.replace("$7", "[7]").replace("$6", "[6]")
.replace("$9", "[9]").replace("$10", "[10]");
}
}
我使用名称isGiftJoin或billingAddress_postalCode代替大写名称,并在构造函数中用/替换_(因此xpath属性是实际的xpath)。只要所有属性的名称中都没有_(它们没有),就可以完成。枚举不会是“大写”,但是就RED是常量而言,枚举并不是真正的常量。在这里,它们是指向数据的类的实例,并且不打算以此方式成为“常量”。
这些名称是否过于古怪和不规范?链接到C样式常量UPPERCASE标准是否愚蠢?
最佳答案
您是否在问是否可以随便命名一个枚举?
当然;为什么不?使用适合您的标准。就个人而言,我仅将所有大写保留给静态决赛,并倾向于使用枚举值的类命名约定。
我不是名称下划线的忠实拥护者,但是在您的情况下,由于您是故意创建层次结构,因此我对此没有多大疑问。
我想知道是否确实需要枚举来命名路径:您是否需要在switch语句中使用它们(在JDK 6或更低版本中)?除了字符串以外,是否有理由将它们表示为其他内容?没有路径的名称有价值吗?