我正在尝试使用 struts2-json-plugin 来集成 struts 操作和 extjs。我想将 json 从 extjs 发送到 struts2 操作。这个 json 包含我的 bean (UserEntity) 的所有字段。但是动作类的设置器没有调用。这是我的代码:
用户操作.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 的设置器。如果我将设置器更改为下面的代码,一切都很好。但我想将 json 对象直接设置为 UserEntity bean。
public void setUserEntity(String userEntity){
...
}
任何帮助将不胜感激提前谢谢