0

EL を使用して、セッションに保存されている Bean からオブジェクトを取得しています。

問題のオブジェクトは P_COV_MOULT と呼ばれ、次のように宣言されます。

this.P_COV_MOULT = new FormField("F_B_P_COV_MOULT","");

そして、次のような getter メソッドを介してアクセスされます。

public FormField getP_COV_MOULT() {
    return P_COV_MOULT;
}

これは NetBeans によって生成されました。

アンダースコアで区切られたすべての大文字の使用は、非定数の命名規則に適合しないことを理解していますが、意味値には役立ちます。

私はこの同じ Bean に他の多くのプロパティを保存しており、それらをすべて正常にプルしており、しばらくの間使用しています。

ただし、この P_COV_MOULT と、アンダースコアで区切られた複数の値の形式であるが、最初の値が 1 文字である他のプロパティを使用すると、javax.el.PropertyNotFoundException が発生します。

オブジェクト/プロパティは、他のすべてのものとまったく同じ方法で保存されますが、見つからないだけです。

別のメソッド getp_COV_MOULT() を挿入しようとしましたが、EL の名前を間違って (または正しく) ゲッターに変換し、getP_COV_MOULT() を呼び出さず、代わりに getp_COV_MOULT() などの別のメソッドを呼び出すという前提で試みました。 、しかし、それはうまくいきませんでした。

ELは次のとおりです。

<input type="text" name="${findingBiometrics.P_COV_MOULT.name}" id="${findingBiometrics.P_COV_MOULT.name}" value="${findingBiometrics.P_COV_MOULT.value}"
                                           ${findingBiometrics.P_COV_MOULT.readonlyState} ${findingBiometrics.P_COV_MOULT.disabledState} size="5" />

どんなアイデアでも大歓迎です。ありがとう。

4

1 に答える 1

1

プロパティ名は小文字で始めるのが慣習です。したがって、プロパティ名がthePropertyの場合、ゲッターの名前はgetThePropertyです。したがって、 というゲッターがある場合getP_COV_MOULT、EL プロパティは であると予想されますp_COV_MOULT。ただし、あなたの命名はかなり奇妙であるため、それが機能するかどうかは 100% 確信が持てません。

于 2013-05-09T13:18:42.390 に答える