當(dāng)我們做web項(xiàng)目時(shí),總是會(huì)碰到的一種情況是下拉框的使用嗤瞎,提交數(shù)據(jù)很簡(jiǎn)單墙歪,但是數(shù)據(jù)的回顯就會(huì)遇到一些問(wèn)題:
我們?cè)跀?shù)據(jù)回顯時(shí),期望下拉框默認(rèn)顯示的是這條數(shù)據(jù)選擇的選項(xiàng)贝奇。
舉個(gè)例子:
有一篇博文虹菲,我上傳時(shí)設(shè)置的博文分類(lèi)是:原創(chuàng);
但是分類(lèi)有:原創(chuàng)掉瞳、轉(zhuǎn)載等毕源;
下拉框默認(rèn)顯示的應(yīng)該是:請(qǐng)選擇;
數(shù)據(jù)回顯時(shí)期望顯示的是:原創(chuàng)陕习;
其實(shí)這個(gè)問(wèn)題很簡(jiǎn)單霎褐,就是默認(rèn)顯示誰(shuí)的問(wèn)題。
如果我們什么都不設(shè)置衡查,默認(rèn)顯示的是c:for遍歷出來(lái)的第一個(gè)數(shù)據(jù)瘩欺。
如果設(shè)置默認(rèn)值的話,selected屬性就可以幫我們實(shí)現(xiàn):
<c:forEach items="${type}" var="t">
<option value="${t.typeId}" selected="selected">${t.typeName}</option>
</c:forEach>
</select>
此時(shí)的設(shè)置很明顯會(huì)默認(rèn)顯示:遍歷數(shù)據(jù)的最后一個(gè)。因?yàn)?strong>前邊的selected屬性都被最后一個(gè)覆蓋了俱饿。
而我們的需求是:期望下拉框默認(rèn)顯示的是這條博文原來(lái)選擇的原創(chuàng)選項(xiàng)歌粥。
略加嘗試,selected=“selected”這個(gè)表達(dá)式可不可以設(shè)置別的值拍埠?比如:+
<c:forEach items="${type}" var="t">
<option value="${t.typeId}" selected="${blogInfor.blogType}">${t.typeName}</option>
</c:forEach>
</select>
此時(shí)是這樣子的:
c標(biāo)簽仍然會(huì)繼續(xù)遍歷給出的t失驶,但是生成的每一個(gè)option都附帶一個(gè)selected標(biāo)簽,這個(gè)標(biāo)簽的值是給定的博文類(lèi)型枣购,是通過(guò)el表達(dá)式獲取到的嬉探;
那么不難想到,selected的值一定是博文原來(lái)選擇的類(lèi)型棉圈,當(dāng)然涩堤,前提條件是:selected屬性可以設(shè)置出了selected之外的值。
經(jīng)過(guò)測(cè)試分瘾,此法完全可行:
1.selected可以設(shè)置出了selected之外的值胎围;
2.下拉框的默認(rèn)值設(shè)置成了el表達(dá)式傳過(guò)來(lái)的值;
所以德召,我們的需求可以得到滿足了白魂。
結(jié)果圖如下: