zoukankan      html  css  js  c++  java
  • 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>
  • 相关阅读:
    C艹老师布置的思考题
    计蒜客练习题:网页跳转(java / C++仔细)
    计蒜客练习题:水果店(嵌套map)
    计蒜客练习题:蒜头君面试(map + max_element)
    小希的迷宫 HDU 1272(并查集)
    OpenJ_Bailian 1061
    Aizu 2224(并查集)
    Aizu 0189 (最短路)
    POJ 2377(最大生成树)
    OpenJ_Bailian 4118(dp)
  • 原文地址:https://www.cnblogs.com/xiaowang1/p/4580111.html
Copyright © 2011-2022 走看看