どのように私はOGNLコンバータを使用せずにfloatを設定するのですか?

StackOverflow https://stackoverflow.com/questions/1511221

質問

私はこのようになりますクラスを持っています:

public class Foobar {
   private float value;
   public void setValue(float value) {
      this.value = value;
   }
}

私は、変数foobar.valueに渡されたWebページ(Struts2の)を持っています。

<input type="text" name="foobar.value" value="123.456">

私はこのエラーを取得します:

ognl.MethodFailedException: Method "setValue" failed for object Foobar@19d373d [java.lang.NoSuchMethodException: setValue([Ljava.lang.String;)]
    at ognl.OgnlRuntime.callAppropriateMethod(OgnlRuntime.java:823)
// WWW:

私は HTTPコンバーターを作成語るこのウェブサイトを見つけました。 opensymphony.com/ognl/html/DeveloperGuide/typeConversion.htmlする

OGNLとStruts2のは、デフォルトでプリミティブなfloatを設定するためのサポートを持っていませんか?

役に立ちましたか?

解決 2

OK、私はそれを考え出しました。上記のコードは、作業を行います。しかし、これは動作しません。

 <input type="text" name="foobar.value" value="-123.456">

明らかOGNL文字列として負の数を解釈します。私は、コンバータなしでこれに対処するかどうかはわかりません。それはポジティブフロートを処理し、ネイティブに浮かぶことを知ってうれしいです。

私が見つかりました。このバグについては、この上でいくつかのさらなる研究をしました。 http://issues.apache.org/struts/browse/WW-2971

これは、閉じたのですが、バージョン2.1.8には、Mavenのではなく、Struts2の最新バージョンはまだそれに依存しません。 :(

私は今のコンバータを書くことと思います。

他のヒント

あなたは(Object)をfloatに値を変更した場合は、

、その仕事をしますか?

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top