传入参数有空格

传入参数有空格

http://img1.sycdn.imooc.com//climg/5f5304f5081e2a8115480863.jpg

上面是老师的代码,自己测试时候,发现这段代码有一个bug,因为BeanUtils.copyProperties(obj1,obj2)这个方法,如果是字符串属性,貌似会自动调用trim()方法,去除头尾空格。

http://img1.sycdn.imooc.com//climg/5f5305ee08729df016000868.jpg

但是老师去数据库查询重名情况的时候,又用的是addCategoryReq.getName(),

查询时候是用带空格的参数去查,插入的时候又用没有空格的参数插入,这就导致可能可以重复插入相同的数据。

比如前台第一次传入name参数为带空格的" 海鲜 ",查询时候查询的也是带空格的" 海鲜 ",插入的却是不带空格"海鲜",

第二次,可以重复在提交name参数为带空格的" 海鲜 ",查询也是带空格的" 海鲜 ",数据库内不存在带空格的" 海鲜 ",通过验证,继续插入不带空格的"海鲜"

解决方法也很简单,用category.get.getName()去查。

我想问的是,BeanUtils.copyProperties(obj1,obj2)能不能设置不去除首尾空格?

另外,实际工作中,比如这个分类,是否允许插入首尾带空格的" 海鲜 "、文字中间带空格的"海 鲜",这样的带空格的name字段?如果不允许,要怎么解决这个问题?

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

3回答
好帮手慕阿满 2020-09-06 09:53:39

同学你好,实际工作需要根据需求决定是否处理,比如说:如果带空格的“海  鲜”和不带空格的“海鲜”算两种分类,这里就无需处理。如果算同一种分,需要处理空格。

祝:学习愉快~

  • rock221 #1

    老师,如果对中间的空格处理,应该怎么处理啊。 

    2021-06-10 13:11:56
  • 同学你好,可以使用replace(" ","")方法,替换字符串中所有的空格,包括首,尾,中间的空格。例如:

    http://img1.sycdn.imooc.com//climg/60c1b03009dd76e405990378.jpg

    祝学习愉快~

    2021-06-10 14:25:26
好帮手慕小脸 2020-09-05 19:25:22

同学你好,查看课程源码可以发现,这里之所以去空格是因为老师在实体类中做了如下操作:

http://img1.sycdn.imooc.com//climg/5f53758d093aa52d13640470.jpg

同学可选择自己手动创建实体类再试试。

祝学习愉快~


  • 提问者 慕丝1539783 #1
    明白了。但是另一个问题您没有回答我,实际工作中,能不能允许插入中间带空格的"海 鲜"。假设管理员A插入了"海鲜"分类,管理员B插入了"海 鲜"分类,按这里的逻辑,是可以插入成功的,是否需要要做处理呢?
    2020-09-05 20:06:28
无敌小糖糖万岁 2020-09-05 15:01:33

是可以设置,这里博主是通过书写了一个工具类,利用反射手动给客户端传来的字符串类型的值去掉首尾空格再赋值

https://www.cnblogs.com/mazhichu/p/11970609.html

你可以参考着看一下

在实际开发也是允许的啊,大部分都是跟着需求来的。

希望可以帮助到你,望采纳!


  • 提问者 慕丝1539783 #1
    你没看懂我的问题
    2020-09-05 17:08:32
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师