这里不是很明白?

这里不是很明白?

if(item.getFieldName().equals("imagePath")&&cake.getImagePath()==null)

cake.getImagePath()中的cake是从哪里来的?

正在回答

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

2回答

同学,你好!分别回答你的两个问题:

1、for(FileItem item:list){
这个list遍历是按照前端页面表单书写的顺序遍历的,你的理解是对的

2、关于隐藏域放到最后的假设,隐藏域放到最后,如果去掉cake.getImagePath()==null,那么只要判断是imagePath这个表单项就会为imagePath属性设置值,如果imagePath已经设置值了,那么就会覆盖掉

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

关于下面的问题,是这样的,如果放前面,可以没有cake.getImagePath()==null的的判断,因为此时还没有设置值,cake.getImagePath()就是为null

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

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!



好帮手慕阿莹 2020-03-14 18:39:27

同学你好,这个cake 是一开始的时候我们新new出来的。

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

但同学的疑问是不是这里为什么这样做判断?还是有其他的疑问呢?如果是:

这里加这个判断是因为,因为我们在前端以隐藏字段的方式提交了原来的图片地址,以防止用户没有提交新的图片时,我们就用原来的,如果用户提交了新的,我们就用新上传的图片。

假如这个隐藏的imagPath字段在前端页面提交表单的放在了最后,那么它可能就会覆盖新上传的图片

我们这里可以判断一下,如果已经上传了图片,我们就不进入这个if中了。

如果没有上传新的图片,则用原来的这个图片地址。

如果老师猜错了同学的疑问,可以再次详细描述一下你的问题

如果我的回答解决了你的问题,请采纳,祝学习愉快.

  • 提问者 慕圣7256090 #1
    1. for(FileItem item:list){ 这个list遍历的时候是按照前端页面表单书写的顺序遍历的吗? 2.隐藏的imagPath字段在前端页面提交表单的放在了最后,如果不添加cake.getImagePath()==null, 则在if(item.getFieldName().equals("imagePath"))cake.setImagePath(item.getString("UTF-8")); 中会将新上传图片的imagePath覆盖掉? 如果隐藏的imagPath字段在前端页面写在上传图片的前面 <input type="hidden" name="imagePath" value="${cake.imagePath}" /> <input type="file" name="image" id="image" class="gui-file" placeholder="图片...">, 那么在if(item.getFieldName().equals("imagePath")&&cake.getImagePath()==null)中, 这个cake.getImagePath()==null 是可以不写的,不产生影响?
    2020-03-14 22:04:25
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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