2015-04-24 31 views
1

我有一些問題。表單數據中的Eclipse Scout自定義對象

我有一些對象:

public class TestParameter { 

    private Long par1; 
    private Long par2; 

    public Long getPar1() { 

    return par1; 
    } 

    public void setPar1(final Long par1) { 

    this.par1 = par1; 
    } 

    public Long getPar2() { 

    return par2; 
    } 

    public void setPar2(final Long par2) { 

    this.par2 = par2; 
    } 
} 

我有形式與這個bean:

@FormData(value = PurchaseConditionsEditFormData.class, sdkCommand = FormData.SdkCommand.CREATE) 
public class TestForm extends AbstractForm { 

    private TestParameter m_testParameter; 

    @FormData 
    public TestParameter getTestParameter() { 

    return m_testParameter; 
    } 

    @FormData 
    public void setTestParameter(final TestParameter testParameter) { 

    m_testParameter = testParameter; 
    } 
} 

我的問題是,我可以在表單數據使用,因爲裏面的表單數據,這是創建

/** 
    * access method for property TestParameter. 
    */ 
public TestParameter getTestParameter() { 

    return getSearchParameterProperty().getValue(); 
} 

/** 
    * access method for property TestParameter. 
    */ 
public void setSearchParameter(TestParameter testParameter) { 

    getTestParameterProperty().setValue(testParameter); 
} 

public TestParameterProperty getTestParameterProperty() { 

    return getPropertyByClass(TestParameterProperty.class); 
} 

public static class TestParameterProperty extends 
    AbstractPropertyData<TestParameter> { 

    private static final long serialVersionUID = 1L; 

    public TestParameterProperty() { 

    } 
} 

問題是setSearchParameter()永遠不會被調用,而getTestParameterProperty ()返回value = null的對象。

如何解決?

我知道骯髒的解決方案將把所有屬性之外的對象和直接在窗體中,但我不希望這種解決方案。

回答

1

我弄清楚我的問題是什麼。

對象需要可序列化,然後才能正常工作。

+1

當然,如果您在表單中使用特定的類型作爲字段值或變量,它必須是「Serializable」。你已經通過查看Stacktrace找到了。另外,我可以說getTestParameter()和setTestParameter(..)不會被調用,因爲'importFormData(..)'和'exportFormData(..)'使用反射來獲取和設置'Form'和'FormData'。 – Jmini