时间:2017-1-15 02:27

——普通方式处理异步请求:

    ServletActionContext.getResponse().getWriter().print("aa");



——Struts2中怎样处理异步请求

1、步骤:
    1)导入json插件包:struts2-json-plugin-2.3.15.1.jar
        这个jar包中有一个struts-plugin.xml,其中的package继承了struts-default.xml:
            <package name="json-default" extends="struts-default">

    2)继承json-default
        以后struts.xml继承json-default即可:
            <package name="default" namespace="/" extends="json-default">

    3)定义视图
        在json的jar包中定义了一个视图:
            <result-types>

                <result-type name="json" class="org.apache.struts2.json.JSONResult"/>
            </result-types>

在struts.xml中设置视图:
            <action name="AjaxDemo2" class="com.wyc.action.AjaxDemo2Action">

                <result type="json"></result>
            </action>

        这样设置后,会将ValueStack栈顶数据变成Json对象。
        也就是会将Action对象转换成Json对象。 

2、<result type="json">参数
    root属性
        <result type="json">标签下有一个参数:
            <result name="success" type="json">

                <param name="root">ps</param>
            </result>

如果没有设置param,可以理解为将整个Action都设置为json数据,也就是说只要在Action中提供了getXxx()方法,就是json中的一个属性。
        如果设置了root,那么只将指定的数据转换成json对象。

3、怎样设置转换成json的对象中不包含特定的属性
    也就是说在获取的json字符串中,不包含id、name等指定属性。
    1)在getXxx()方法上设置注解:
        @JSON(serialize = false)

    2)还可以通过json插件的interceptor完成
        <action name="AjaxDemo2" class="com.wyc.action.AjaxDemo2Action">

            <result name="success" type="json">
                <param name="root">ps</param>
                <param name="includeProperties">ps\[\d+\]\.name,ps\[\d+\]\.price,ps\[\d+\]\.count</param>
                <param name="excludeProperties">ps\[\d+\]\.id</param>
            </result>
        <result name="jsp">/index.jsp</result>

root表示要转换的对象。
        includeProperties表示需要被转换的对象。
        excludeProperties表示不需要被转换的对象。

Struts2之Json插件的使用的更多相关文章

  1. 【转】Struts2中json插件的使用

    配置注意点: 在原有Struts2框架jar包的引入下,需要额外多加一个Json的插件包(struts2-json-plugin-2.3.7.jar) 在struts.xml配置文件中,包需要继承js ...

  2. Struts2:Json插件_Ajax

    lib中加入包 struts2-json-plugin-2.3.20.jar json插件有自己的过滤器.返回类型 WebRoot下新建js文件夹 放入json2.js json2.js是一个著名开源 ...

  3. 【Struts2】Json插件使用

    一.使用步骤 1.1 引入依赖 1.2 在struts.xml文件中配置 一.使用步骤 1.1 引入依赖 <!-- https://mvnrepository.com/artifact/org. ...

  4. 笔记:Struts2 的 JSON 插件

    安装插件,将其复制到Web应用的WEB-INF/lib 目录下 Struts2-json-plugin-2.3.16.3.jar json-lib-2.3-jdk15.jar commons-bean ...

  5. Struts2的JSON插件

    扎心了,老铁~这依然是一个注册. 1.reg.jsp <%@page contentType="text/html; charset=utf-8"%> <!DOC ...

  6. Struts2之—集成Json插件实现Ajax

       上篇博客介绍了Struts2中自己定义结果集实现Ajax,也分析了它的缺点:这样自己定义的结果集,写死了,不能做到client须要什么数据就传什么数据:Struts2之-自己定义结果集实现aja ...

  7. 关于Strut2内置Json插件的使用

    配置注意点: 在原有Struts2框架jar包的引入下,需要额外多加一个Json的插件包(struts2-json-plugin-2.3.7.jar) 在struts.xml配置文件中,包需要继承js ...

  8. Struts2返回Json数据(使用Struts2插件)

    这篇我将介绍如何使用Struts2的struts2-json-plugin.jar插件返回JSON数据. 一.其中主要步骤有: 1.将struts2-json-plugin.jar插件拷贝到项目的&q ...

  9. struts2中使用json插件实现ajax交互

    json插件可以简单的实现ajax交互,避免了使用struts2-dojo-plugin.jar包时带来的struts2.x版本冲突问题.并且减少了使用ajax标签时需要的繁琐的配置包括web.xml ...

随机推荐

  1. Album++:分布式事务专辑-基础概念

    (一)基础概念:↓ ↓ ↓ 1.1)什么是事务 什么是事务?举个生活中的例子:你去小卖铺买东西,"一手交钱,一手交货"就是一个事务的例子,交钱和交货必 须全部成功, 事务才算成功, ...

  2. 什么是 BPMN ?为什么我们要用 BPMN 和工作流 ?

    BPMN 和 Activiti 介绍 工作流介绍 在任何行业和企业中,都有各种各样的流程,例如: 请假流程 报销流程 入职流程 离职流程 出差流程 等等-- 就算你自己没有设计过工作流,那么你每天肯定 ...

  3. PAT乙级:1083 是否存在相等的差 (20分)

    PAT乙级:1083 是否存在相等的差 (20分) 题干 给定 N 张卡片,正面分别写上 1.2.--.N,然后全部翻面,洗牌,在背面分别写上 1.2.--.N.将每张牌的正反两面数字相减(大减小), ...

  4. Lesson 11 Not guilty

    Lesson 11 Not guilty guilty ['gɪlti] adj. 有罪的:内疚的 be guilty of - He is guilty of murder. be innocent ...

  5. 【每日算法】存在重复元素 III

    题目描述 这是 LeetCode 上的 220. 存在重复元素 III, 难度为 [中等] 给你一个整数数组 nums 和两个整数 k 和 t .请你判断是否存在 两个不同下标 i 和 j,使得 ab ...

  6. 搭建kerberos和NTP服务器以及安全的NFS服务

    说明:这里是Linux服务综合搭建文章的一部分,本文可以作为单独搭建Kerberos和NTP时钟服务的参考. 注意:这里所有的标题都是根据主要的文章(Linux基础服务搭建综合)的顺序来做的. 如果需 ...

  7. 警告: Runner org.junit.internal.runners.ErrorReportingRunner (used on class cn.star.MybatisTest)

    bug描述: 在Springboot整合Junit的时候编写测试类进行测试时, 出现以下错误: 十一月 28, 2019 2:53:48 下午 org.junit.vintage.engine.des ...

  8. 第八篇--编写Windows服务

    编写service服务参考网址:https://blog.csdn.net/nodeathphoenix/article/details/24181509 vc获得显示器状态(捕获息屏.亮屏网址):h ...

  9. intouch制作历史报警查询(时间查询,筛选关键字)

    在项目中,intouch制作历史报警查询已属于标配功能,如何做出按时间以及关键字来进行综合查询,提高历史报警查询效率仍然是一个值得研究的问题,接下来参考网上文章自己总结下如何制作. 1.DTPicke ...

  10. sqli-labs靶机

    第一关   1' 第二关   1 第三关    1') 第四关    1'') 第五关   1'     +         extractvalue报错注入 第六关   1 "  +    ...