关于这里的代码不太理解

关于这里的代码不太理解

<c:forEach var="c" items="${ categoryList }">
   <option value="${ c.cid }" <c:if test="${ c.cid == product.category.cid }">selected</c:if>>${ c.cname }</option>
</c:forEach>

为什么在C:if语句放在value后面,就可以实现根据判断结果来设置默认值呢??

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

能详细解释一下吗?

另外,关于这个分类回显的功能,我自己是这样做的

<c:forEach var="cl" items="${categoryList}">
    <c:choose>
        <c:when test="${cl.cid==product.category.cid}">
            <option value="${product.category.cid}" selected="selected">${product.category.cname}</option>
        </c:when>
        <c:otherwise>
            <option value="${cl.cid}">${cl.cname}</option>
        </c:otherwise>
    </c:choose>
</c:forEach>

请问老师觉得我这样做怎样呢?我感觉我这样写清晰很多哈哈哈,虽然不够视频中老师写的代码简洁,但我这样写看起来清晰很多,可能我技术不够好哈哈哈看不懂又简洁又厉害的代码,请老师评价一下谢谢

正在回答

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

2回答

是这样的,可以直接写一个selected就可以的:

<!DOCTYPE html>
<html>
<body>

<select>
  <option >Volvo</option>
  <option selected>Saab</option>
  <option>Mercedes</option>
  <option>Audi</option>
</select>
 
</body>
</html>

同学可以试一下:

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

这个是一个简单的写法,同学这里记住就可以了,当然,同学也可以按照标准的写法去写哦


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


好帮手慕阿满 2019-06-01 14:25:22

同学你好,<c:if test="${ c.cid == product.category.cid }">selected</c:if>这句代码是一个判断,当商品的分类id等于遍历出来的id,就将其设置为默认值。同学的代码也实现了,能够有自己的理解,非常不错。在同学的代码<c:when>也做了一次判断的。

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

  • 提问者 MasonM #1
    老师,我不懂的是,当商品的分类id等于遍历出来的id时,不是就变成了这样吗?↓ <option value="${ c.cid }" selected>${ c.cname }</option> 直接在value后面写一个selected就能将其设置为默认值了吗? 不是要selected="selected"这样才行的吗
    2019-06-01 14:42:11
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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