ajax请求处理

什么是AJAX?
AJAX的全程是Asynchronous JAVAScript and XML(异步的javaScript和xml);
ajax不是新的编程语言,而是一种使用标准的新方法。ajax是与服务器交换数据并更新部分网页的艺术;
ajax的优点:

  • 页面无刷新,用户的体验好;
  • 使用异步方式与服务器通信,具有更加迅速的响应能力;
    可以把服务器负担的工作转嫁到客户端,利用来处理,减少服务器和宽带的负担,节约控件和宽带租用的成本;
  • 基于标准化的并被广泛支持的技术,不需要下载插件或者小程序;
  • ajax可使因特网应用程序更小,更快,更友好;
    ajax的缺点:
  • ajax不支持浏览器back按钮
  • 安全问题ajax暴露了与服务区交互的细节
  • 对搜索疫情的支持比较弱
  • 破坏了程序的异常机制;
  • 不容易调试;
    今天遇到ajax传递日期参数的问题:
  • 发现ajax在传递日期参数的时候,javascript已经默认的额toString()方法转为字符转格式了;
    经过查阅资料发现:

    ajax发送的请求参数和接收服务器端返回的数据都是文本数据,ajax不支持二进制数据传输,所以会调用toStirng()方法把参数转为字符串。
    ajax的post和get的数据都是以文本方式传输,无论是客户端提交的数据还是服务器端返回的数据;

    ajax传递日期类型的参数,传递的是日期类型的字符串,在后端代码中需要操作,将字符串转为日期类型;

    接下来问题又出现了
    当我按住日期参数查询数据库的时候,报错:
    invalid comparison: java.util.Date and java.lang.String

      感谢: https://www.cnblogs.com/dflmg/p/6641168.html

    具体的原因是因为:我在mybatis.xml文件做查询的时候,日期类型不能判断是否为null
    报错的代码:

<select id="getIntegralCoefficientStockList" resultType="IntegralCoefficientStock" parameterType="IntegralCoefficientStock">
SELECT
coefficient_stock_id,
coefficient_stock,
create_time,
create_by,
stock_code
FROM integral_coefficient_stock
<where>
<if test="createTime!=null and createTime!='' ">
AND create_time = #{createTime}
</if>
<if test="stockCode!=null and stockCode!='' ">
AND stock_code like "%"#{stockCode}"%"
</if>
</where>
</select>

而正确的代码应该是这样的:

<select id="getIntegralCoefficientStockList" resultType="IntegralCoefficientStock" parameterType="IntegralCoefficientStock">
    SELECT
    coefficient_stock_id,
    coefficient_stock,
    create_time,
    create_by,
    stock_code
    FROM integral_coefficient_stock
    <where>
        <if test="1">
        AND create_time = #{createTime}
        </if>
        <if test="stockCode!=null and stockCode!='' ">
        AND stock_code like "%"#{stockCode}"%"
        </if>
    </where>
</select>

猜你喜欢

转载自blog.51cto.com/13955864/2178958
今日推荐