我試圖用struts2-json-plugin來整合struts動作和extjs。 我想從extjs發送json到struts2的動作。這個json包含我的bean的所有字段(UserEntity)。但動作類的setter不會調用。 這裏是我的代碼:extjs和struts集成
UserAction.java
public class UserAction extends BaseAction {
private UserEntity userEntity = new UserEntity();
public UserEntity getUserEntity() {
return userEntity;
}
public void setUserEntity(UserEntity userEntity) {
this.userEntity = userEntity;
}
...
}
struts.xml的
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="default" namespace="/" extends="struts-default,json-default">
<action name="saveOrUpdateUserAction" class="ir.emad.action.UserAction" method="saveOrUpdateUser">
<result name="success" type="json">
<param name="root">userEntity</param>
</result>
</action>
</package>
</struts>
和我UserStore.js
Ext.define('AM.store.UserStore', {
extend: 'Ext.data.Store',
model: 'AM.model.UserModel',
autoLoad: true,
proxy: {
type: 'ajax',
api: {
read: 'listAllUsersAction',
update: 'saveOrUpdateUserAction'
},
reader: {
type: 'json',
root: 'users',
successProperty: 'success'
},
writer: {
type: 'json',
root: 'userEntity',
successProperty: 'success',
encode: true
},
contentType: 'application/json'
}
});
我的問題是userEntity永不二傳手如果我將setter更改爲下面的代碼,那麼每件事情都很好。但我想直接將json對象設置爲UserEntity bean。
public void setUserEntity(String userEntity){
...
}
任何幫助將不勝感激提前
您沒有在store的代理中指定url。如果你指定它,它會工作... – Hariharan
感謝Hariharan你的答案。實際上我是通過extjs api來完成的。 {更新:saveOrUpdateUserAction}指定url –