通过ajax提交的后台的数据实现不了赋值

前台提交的代码,在后台通过属性注入不进去的问题
前台表单代码:

<form id="editForm" method="post">
                <table>
                    <tr>
                        <td><input class="easyui-textbox" hidden="true" type="text" name="dep.uuid" data-options="required:true"></input></td>
                    </tr>
                    <tr>
                        <td>部门名称:</td>
                        <td><input class="easyui-textbox" type="text" name="dep.name" data-options="required:true"></input></td>
                    </tr>
                    <tr>
                        <td>部门联系电话:</td>
                        <td><input class="easyui-textbox" type="text" name="dep.tele" data-options="required:true"></input></td>
                    </tr>
                    <tr>
                        <td>
                            <button id="editBtn" type="button" class="easyui-linkbutton">编辑</button>
                            <button id="clearBtn" type="button" class="easyui-linkbutton" onclick="clearForm('editForm')">重置</button>
                        </td>
                    </tr>
                </table>
            </form>

给后台发送的请求:
图片说明
struts的action配置

<struts>
    <package name="erp" extends="struts-default" namespace="/">
        <action name="depAction_*" class="depAction" method="{1}"></action>
    </package>
</struts>

depAction里面定义的dep的属性驱动以及add方法

//属性驱动
    private Dep dep;

    public void setDep(Dep dep) {
        this.dep = dep;
    }

/**
     * 添加部门
     */
    public void add() {
        System.out.println(dep.getName() +"---"+dep.getTele());
        try {
            depBiz.add(dep);
            returnOptionMessage(true, "添加成功!");
        } catch (Exception e) {
            returnOptionMessage(false, "添加失败");
            e.printStackTrace();
        }
    }
//部门的实体类
public class Dep {

    private Long uuid;       //部门ID
    private String name;     //部门名称
    private String tele;     //部门电话
    public Long getUuid() {
        return uuid;
    }
    public void setUuid(Long uuid) {
        this.uuid = uuid;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getTele() {
        return tele;
    }
    public void setTele(String tele) {
        this.tele = tele;
    }

图片说明

方法1:先设置同步在进行Ajax操作
//在全局或某个需要的函数内设置Ajax异步为false,也就是同步
$.ajaxSetup({
async : false
});
//然后再进行你的Ajax操作
$.post(地址, 参数, function(data, status) {
if (status == "success") {
//赋值给全局变量
}
else {
alert("wrong");
}
});
方法2:直接用$.ajax
$.ajax({
type : "post",
url :地址,
data : "参数" + 参数的值,
async : false,
success : function(data){
//赋值给全局变量;
}
});

问题终于解决了,总结一下:struts2提供了两种数据封装机制
一、属性驱动
属性驱动里面又细分成两种:
1、提供属性setter方法的方式
前台页面:
只需在前台表单的input标签的name提供相应的属性名

                                            <input type = "text" name =“username"></input>
                                    后台:
                                        只需提供私有的成员变量以及对应的setter方法
                                        class UserAction{
                                                    private String username;
                                                    public void setUsername(String username){
                                                        this.username = username;
                                                    }
                                        }
                        2、页面提供表达式的方式
                                        前台页面:
                                            需要提供ognl表达式(obj.property)
                                                //前段必须提供ognl表达式
                                                <input type="text" name="user.username"></input>
                                            后台:
                                                class UserAction{
                                                        //只需定义实体变量
                                                        private User user;

                                                        public void setUser(String user){
                                                                this.user = user;
                                                      }
                                                        //必须提供对应的getter方法(如果没有提供,struts每次创建一个实体,每个实体里面只有一个属性有值,其他都为默认值,最终将其中一个实体返回)
                                                        public String getUser(){
                                                                return user;
                                                        }
                                                }


                                                //对应的实体类
                                                class User{
                                                    private String username;

                                                    public void setUsername(String username){
                                                        this.username = username
                                                    }
                                                    public String getUsername(){
                                                        return username;
                                                    }
                                                }
        二、模型驱动

            前台:
                //只需提供实体的属性
                <input type = "text" name = "username"></input>
        后台:
                 //实现ModelDriven接口
                class UserAction implements ModelDriven<User> {
                     //必须手动创建对象
                    private User user = new User();

                    //实现getModel方法并将创建的实体返回
                    public User getModel(){
                        return user;
                    }
                }

这样传值,别忘了引jsonp的jar包
$.ajax({
url:url+"fenlei/selectf",
type:"post",
data:{},
cache:false,
dataType:"jsonp", //指定实现ajax的方式,有两种json和jsonp,默认是json,json是struts ajax的实现方式
//指定通过ajax从类中带过来的数据在页面中通过哪一个函数执行
success:function(d){

$.each(d.list,function(i,item){
$("#fid").append('

'+item.fenglei+' ');
});
}
    });