• 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>
  • 相关阅读:
    自动化测试-18.selenium之bugFree代码注释
    自动化测试-16.selenium数据的分离之Excel的使用
    自动化测试-15.selenium单选框与复选框状态判断
    自动化测试-14.selenium加载FireFox配置
    自动化测试-13.selenium执行JS处理滚动条
    Lucas-Kanade算法总结
    迟来的2013年总结及算法工程师/研究员找工作总结
    Android从文件读取图像显示的效率问题
    Viola Jones Face Detector
    谈谈Android中的SurfaceTexture
  • 原文地址:https://www.cnblogs.com/xiaowang1/p/4580111.html
Copyright © 2020-2023  润新知