我看了,觉得你的调用方式是对的。在跳转页面中,如果deviceParameter对象为null,那么会报错的。既然没有报错,就只会两种情况
1)deviceParameter是一个new Device()对象,里面没有值。如果是这种情况,那么意味者跳转页面的时候,没有传递过来。或者在跳转页面被T展现(render)的时候,deviceParameter被初始化为new Device()。
2)HTML中没有调用id="device_name"的TextField组件。
两种方式查实:
1)将跳转页面中
public abstract void setDeviceParameter(Device deviceParameter);
public abstract Device getDeviceParameter();
改为以下代码,并删除page文件中的<property name="deviceParameter"/>
private Device deviceParameter;
@Override
protected void initialize() {
deviceParameter = null;
}
public void setDeviceParameter(Device deviceParameter) {
this.deviceParameter = deviceParameter ;
}
public Device getDeviceParameter() {
return deviceParameter ; //在这里设一个断点,看看页面调用该对象时,是否有值。
}
如果此时页面报错,或者deviceParameter 对象为new Device(),那么代表对象没有正确传递过来,你需要检查跳转这个页面的监听方法。
2)检查id="device_name"的TextField组件是否正常。 |