0

ajaxEditableLabel を使用する場合、改札内の double の入力検証を追加するのに問題があります。
これは私のコードです: (アイテムはリストビューのリストアイテムです)

item.add(new AjaxEditableLabel("myDouble", new Model(myObject.getMyDouble())) {
                @Override
                protected void onSubmit(AjaxRequestTarget target) {
                    super.onSubmit(target);
                    myObject.setMyDouble(new Double(getEditor().getInput())); //here it fails to read the input when a use enters a wrong number
                   //Do something when it's a double
                }
            });

このコンポーネントにバリデーターを追加して、これが double 値であるかどうかを確認するにはどうすればよいですか?

現時点で私は使用しています:

         Double.parseDouble(myval);

try catch... を使用すると、 、 、および .

この入力を検証するウィケットの方法が必要ですか?

編集**:このコンポーネントに NumericTextField を追加する必要があるかもしれませんが、方法がわかりません。

4

2 に答える 2

1

getInput をgetConvertedInput();に変更することで解決しました。これは私の古い解決方法でした。getModelObject()を使用する方が優れており、Type が Double に設定されているため、これが優れています。

また、タイプを Double に変更しました。.setType(Double.class

item.add(new AjaxEditableLabel("myDouble", new Model(myObject.getMyDouble())) {
            @Override
            protected void onSubmit(AjaxRequestTarget target) {
                super.onSubmit(target);
                myObject.setMyDouble((Double)getEditor().getModelObject())); //changes here!!!
               //Do something when it's a double
            }
        }.setType(Double.class));
于 2013-04-23T11:57:14.090 に答える