私はいくつかの jxpath を列挙に入れたいと思っています。マップを使用して JSF ページと共有します。これにより、jxpath が createPathAndSetValue を実行するためのキーとしてそれらを EL で使用できるようになります。
そうすれば、大量のゲッターとセッターを作成することなく、モデルを簡単に埋めることができます。このような:
<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 標準に連鎖するのはばかげていますか?