extjs里的form赋值问题

[code="java"]
// java对象
public class PropertyIdc
{
/**
* 获取读卡器类型
*/
private String variant;
private StatusIdc statusIdc;
}
public class StatusIdc
{
private String status;
}

extjs
items : [ {
fieldLabel : '读卡器类型',
name : 'variant'
}, {
fieldLabel : '是否具有退卡能力',
name : 'statusIdc.status'
}

赋值我是采用:
tab.getForm().load({
url : url,
method : 'GET',
failture : function(form, action) {
Ext.Msg.alert("Tip", "Data Load Fail!");
}
});

问题是: variant这个属性可以赋值上去,但statusIdc.status赋值不上.

返回的json格式是:{"data":{"variant":"CHIP_CONNETED","statusIdc":{"status":"Healthy"}},"success":true}

[/code]

你需要在你的form里面加上试试
reader : new Ext.data.JsonReader({
root:'data'},

[

{name: 'variant',mapping:'variant',type:'string'}, {name: 'statusIdc.status' ,mapping:'statusIdc.status',type:'string'}

]),

具体'statusIdc.status'还是statusIdc.status怎么用我也记不清了,你可以自己尝试

[code="java"]
BasicForm中
reader : DataReader
当执行"load"动作时,设置一个Ext.data.DataReader对象(如Ext.data.XmlReader实例)用来读取数据。它是一个可选项,因为这里已经有了一个内建对象来读取JSON数据。An Ext.data.DataReader (e.g. Ext.data.XmlReader) to be used to read data when executing "load" actions. This is optional as there is built-in support for processing JSON.

url : String
通讯url地址。该地址也可以由action那里指定。The URL to use for form actions if one isn't supplied in the action options.

method : String
如不指定,所有动作使用的默认表单请求方法(GET或POST)。The request method to use (GET or POST) for form actions if one isn't supplied in the action options.

baseParams : Object
表单请求时传递的参数,例{id: '123', foo: 'bar'}。Parameters to pass with all requests. e.g. baseParams: {id: '123', foo: 'bar'}.

[/code]

[code="java"]
另一種方法是你的load方法成功事件success中再賦值
success : Function
form : Ext.form.BasicForm
action : The Action object which performed the operation.
-response
-result
-type
[/code]