struts2 + jquery + json 简单的前后台信息交互

ajax 是一种客户端与服务器端异步请求的交互技术。相比同步请求,大大提高了信息交互的速度和效率。是当下非常实用和流行的技术。

这里简单的说明 struts2 + jquery + json 下的 信息传递。

1 . 首先创建一个 静态页面 ,然后在 脚本中 写一个 ajax 方法如下:

$.ajax({
            type : "get" , 
            url : "ajax/ajax?time="+Math.random() , 
            datatype : "json" , 
            success : function(data){
                var json = $.parseJSON(data);
                mydiv.innerHTML = data.name;
            } , error : function(data){
                alert(data.status);
            }
        })

2 . 后台的 action 方法如下:

        private String result;

        public String getResult() {
        return result;
    }
    public void setResult(String result) {
        this.result = result;
    }

        public String execute() throws Exception{
                JSONObject jsonObj = new JSONObject();
                jsonObj.put("name", "james");
        this.setResult(jsonObj.toString());
        return SUCCESS;
    }        

3 . 然后在 struts.xml 文件中 配置 action 的 result属性:

<package name="ajax" namespace="/ajax" extends="json-default">
        <action name="ajax" class="org.java.action.AjaxAction" method="execute">
            <result type="json">  /* 注意 result 的 type 属性为 json */
                <param name="excludeNullProperties">true</param>  /* 将存入对象中的 null 值过滤掉 */
            </result>
        </action>
    </package>

其中需要导入一个名叫:struts2-json-plugin-2.3.4.jar 的 jar 包,其中的 package 所扩展的包 ==》json-default 就是从这个 jar 包中 继承的。导入该 jar 包到项目中之后,还将该 jar 包下的 struts-plugin.xml 文件中一个 包名叫 json-default 的包,拷贝到你的 struts.xml 文件中,这样就实现了在 struts2中使用jquery的 ajax 方法,将数据封装成 json 对象进行 前后台的 信息交互了。

json-default 的包信息如下:

<!-- 处理 ajax 请求 json 数据格式的包 -->
    <package name="json-default" extends="struts-default">
        <result-types>
            <result-type name="json" class="org.apache.struts2.json.JSONResult"/>
        </result-types>

        <interceptors>
            <interceptor name="json" class="org.apache.struts2.json.JSONInterceptor"/>
            <interceptor name="jsonValidation" class="org.apache.struts2.json.JSONValidationInterceptor"/>
            <!-- Sample JSON validation stack -->
            <interceptor-stack name="jsonValidationWorkflowStack">
                <interceptor-ref name="basicStack"/>
                <interceptor-ref name="validation">
                    <param name="excludeMethods">input,back,cancel</param>
                </interceptor-ref>
                <interceptor-ref name="jsonValidation"/>
                <interceptor-ref name="workflow"/>
            </interceptor-stack>
        </interceptors>
    </package>
原文地址:https://www.cnblogs.com/xiaowang1/p/4580111.html