struts2中使用ajax的问题

本文详细介绍了如何使用Struts2的JSON插件实现AJAX功能,包括导入jar包、配置struts-plugin.xml以及在action中定义JSON返回属性的方法。同时也指出了使用Struts2进行AJAX开发时可能遇到的服务器端异常处理问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一般步骤:

1,使用struts2-json-plugin-2.1.8.1.jar,导入或者依赖这个jar。

2,这个jar包中的struts-plugin.xml,提供了json的相关配置。

<struts>
    <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>
</struts>

在需要使用ajax的地方的相关struts的配置文件中,包继承json-default,result的type为json。比如

  <package name="userjson" namespace="/" extends="json-default">
      <action name="userJSONAction_*" method="{1}" class="userAction">
          <result type="json"></result>
      </action>
  </package>

3,在action中,对于需要返回的json字符串定义私有属性,并添加get方法。比如,private String msg;public String getMsg(){return this.msg;}

需要注意的问题,这个也是struct2使用ajax的缺点。不管采用$.post或者$.ajax方法,在客户端无法捕获服务器端产生的异常或错误。原因是,structs2对于服务端产生错误的处理是将产生错误的模版页面返回给客户端并返回客户端。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值