0
<rich:column sortBy="#{entity.double_amt}" filterBy="#{entity.double_amt}" >
    <h:inputText value="#{entity.double_amt}">
    <a4j:support event="onchange" reRender="entityTable" ajaxSingle="true" />
</rich:column>

rich:dataTable内に列があり、ユーザーは金額を入力してフィルター/並べ替えを行うことができます。

ユーザーがdouble_amtを入力していない場合、空白になります。
ただし、何も入力せず、列ヘッダーをクリックしてテーブルを並べ替える (またはフィルターに何かを入力する) と、double_amtはデフォルトで0.0になります。さらに悪いことに、このテーブルに複数のレコードがある場合、別の行からのランダムなdouble_amtが0.0の代わりに空の行に挿入されます。

列ヘッダーをクリックすると、setDouble_amt(Double double_amt)が呼び出され、ここのdouble_amtは0.0または別のレコードの値です。

ここで何か不足していますか?助けてください。

4

2 に答える 2

0

ここで説明されているこの問題に似ているようです:

JSF - 入力のない UIInput コンポーネントは、文字列プロパティを空の文字列に設定します

ただし、私の問題では、ユーザーが0.0を入力したのか、何も入力していないのかを知る必要があります。いずれにせよ、setter には0.0が渡されます。

ゲッター/セッターを文字列getDoubleAmt()およびsetDoubleAmt(String doubleAmt) )に変更することで問題を解決し、提供されたリンクのように入力された空の文字列を確認します。空でない場合は、doubleを元のフィールド ( double_amt ) に解析します。

これが同じ問題に直面している誰かに役立つことを願っています。

于 2013-09-17T07:46:48.937 に答える