第一個問題:下拉菜單文字未顯示完整;
先來看源碼:
<li>
<p>分類名稱:</p>
<select name="className" class="form-control m-b" th:with="type=${@dict.getType('sys_zyjn_class')}">
<option value="" th:selected="true">全部分類</option>
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>
</select>
</li>
效果圖如下:
解決方案,把發select下拉菜單中的class樣式去掉即可恢復正常,去掉後的select源碼爲:
<select name="className" th:with="type=${@dict.getType('sys_zyjn_class')}">
效果:
此外,在thymeleaf下拉菜單中有2個問題需要注意:
第二個問題:option中選項如果爲字典值,是不帶“全部分類”的這個值的,那麼就會出現頁面初步加載出來的是字典第一個值的數據,而不是全部數據,如果我們希望頁面初步加載出來的就是全部數據怎麼辦?此時需要我們手動添加一個全部分類的option選項,詳細寫法參照第一段代碼;
第三個問題:關於value,如果value有具體的數值,此時用th:value是沒有問題的,如果像全部分類裏邊是空值:此時用th:value=""就會報錯的了,具體錯誤如下:
怎麼解決呢,就是把th:value=""中的th:去掉,概括如下:
value裏邊是具體的數值,表達式爲
th:value="${dict.dictValue}"
如果value的值爲空,表達式爲
value=""