Object Eclipse Scout表单数据中的自定义对象

Object Eclipse Scout表单数据中的自定义对象,object,form-data,eclipse-scout,Object,Form Data,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 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() {

  }
 }
/**
*属性TestParameter的访问方法。
*/
公共测试参数getTestParameter(){
返回getSearchParameterProperty().getValue();
}
/**
*属性TestParameter的访问方法。
*/
public void setSearchParameter(TestParameter TestParameter){
getTestParameterProperty().setValue(testParameter);
}
公共测试ParameterProperty getTestParameterProperty(){
返回getPropertyByClass(TestParameterProperty.class);
}
公共静态类TestParameterProperty扩展
抽象属性数据{
私有静态最终长serialVersionUID=1L;
公共测试参数解释属性(){
}
}
问题是永远不会调用setSearchParameter(),getTestParameterProperty()返回值为null的对象

如何修复它


我知道肮脏的解决方案是将所有属性放在对象之外,直接放在表单中,但我不想要那个解决方案。

我知道我的问题出在哪里


对象需要是可序列化的,然后才能工作。

当然,如果在表单中使用特定类型作为字段值或变量,则它必须是可序列化的。你已经通过查看Stacktrace找到了答案。此外,我可以说,
getTestParameter()
setTestParameter(..)
从未被调用,因为
importFormData(..)
exportFormData(..)
使用反射来获取和设置
表单
表单数据
之间的值。