結論
th:value="'01'"というようにvalueをシングルクォートでくくると、先頭のゼロが取れずにそのままの値がHTMLに反映されます。
事象
例えば以下のようなコードをthymeleafで書きます。
意図した挙動としてはvalueが01など先頭に0がついた状態なのですが…
<select th:field="*{select001}" th:id="select001" name="select001">
<option th:value="01">01</option>
<option th:value="02">02</option>
<option th:value="03">03</option>
<option th:value="04">04</option>
</select>
出力されたHTMLではvalueの先頭のゼロが取れてしまっています。
<select name="select001" id="select001">
<option value="1">01</option>
<option value="2">02</option>
<option value="3">03</option>
<option value="4">04</option>
</select>
対処法
結論に書いたようにvalueをシングルクォートでくくります。
先ほどの例を修正すると下記のようになります。
<select th:field="*{select001}" th:id="select001" name="select001">
<option th:value="'01'">01</option>
<option th:value="'02'">02</option>
<option th:value="'03'">03</option>
<option th:value="'04'">04</option>
</select>