我正在尝试使用struts2-json-plugin来集成struts、action和extjs。我想把json从extjs发送到struts2操作。这个json包含我的bean (UserEntity)的所有字段。但是action类的setter不调用。下面是我的代码:
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从不called.if,我把setter改成了下面的代码,一切都很好。但是我想将json对象直接设置到UserEntity bean中。
public void setUserEntity(String userEntity){
...
}如有任何帮助,将不胜感激。
发布于 2013-06-26 03:47:01
ExtJS和Struts是运行在不同机器上的不同进程。
浏览器是否将正确的信息发送到服务器上的正确URL?你可以使用Chrome开发者工具来检查。
服务器能接受独立于ExtJS的正确网址上的正确信息吗?
https://stackoverflow.com/questions/17293027
复制相似问题