سؤال

لدي فئة تبدو وكأنها هذه:

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

ثم لدي صفحة ويب (struts2) التي مرت في foobar.value متغير.

<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)

لقد وجدت هذا الموقع الذي يتحدث عن إنشاء محولات http://www.opensymphony.com/ognl/html/developerguide/typeconversion.html.

لا يحتوي ognl و struts2 على دعم لوضع تعويم بدائي افتراضيا؟

هل كانت مفيدة؟

المحلول 2

حسنا، أنا أحسب ذلك. الرمز أعلاه يعمل. لكن هذا لا يعمل.

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

يبدو أن ognllly يفسر الرقم السلبي كسلسلة. لست متأكدا من كيفية التعامل مع هذا دون محول. من الجيد أن تعرف أنها ستتعامل مع تعويم إيجابي وتطفو أصليا.

فعلت بعض الأبحاث الإضافية حول هذا الخطأ وجدت هذا الخطأ. http://issues.apache.org/struts/browse/ww-2971.

إنه مغلق ولكن الإصدار 2.1.8 ليس في Maven وأحدث إصدار من Struts2 لا يعتمد عليه بعد. :(

أعتقد أنني سأكتب محول الآن.

نصائح أخرى

إذا غيرت القيمة إلى تعويم (الكائن)، فهل هذا يعمل؟

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top