解决前端向后端传输空格的问题

解决前端向后端传输空格的问题

前端向后端传输空格,会导致mybatis的判空失效

比如:

	<sql id="mapSql">
        <where>
            <if test="map.name !=null and map.name != ''">
                and name like "%"#{map.name}"%"
            </if>
            <if test="map.min !=null and map.min != ''">
                and age >= #{map.min}
            </if>
            <if test="map.max !=null and map.max != ''">
                and age &lt;= #{map.max}
            </if>
        </where>
    </sql>

这是因为空格也是有数值的,不是空字符串。

	public static void main(String[] args) {
        String str = " ";
        System.out.println(str.length());  //  1
        System.out.println(str != "");   //  true
        System.out.println(str != null);  // true

    }

前端的解决办法:

<input type="text" name="name" class="form-control" placeholder="搜索的名字" style="width: 120px;" value="${condition.name}"/>

<script>               
       $(".form-control").each(function () {
           jQuery(this).change(function () {
               jQuery(this).val(jQuery.trim(jQuery(this).val()));
           })
       })
</script>

后端的解决办法:

	//使用 Java 正则表达式,去除两边空格。
    public static String delSpace(String str) {

        if (str == null) {
            return null;
        }

        String regStartSpace = "^[ ]*";
        String regEndSpace = "[ ]*$";

        // 连续两个 replaceAll
        // 第一个是去掉前端的空格, 第二个是去掉后端的空格
        String strDelSpace = str.replaceAll(regStartSpace, "").replaceAll(regEndSpace, "");

        return strDelSpace;
    }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

halulu.me

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值