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>
  • 相关阅读:
    P1135 奇怪的电梯题解
    P1443 马的遍历题解
    P2392 kkksc03考前临时抱佛脚题解
    P1219 八皇后问题题解
    IDEA导入/导出live templates或者其他设置
    P3743 kotori的设备题解
    带你看论文丨全局信息对于图网络文档解析的影响
    【“互联网+”大赛华为云赛道】EI命题攻略:华为云EI的能力超丰富,助你实现AI梦想
    【“互联网+”大赛华为云赛道】IoT命题攻略:仅需四步,轻松实现场景智能化设计
    只需6步,教你从零开发一个签到小程序
  • 原文地址:https://www.cnblogs.com/xiaowang1/p/4580111.html
Copyright © 2011-2022 走看看