Spring で Web アプリケーションを構築していて、列挙型の値を *.jsp のラベルとして表示したい
私の列挙型:
public enum Type {BODY_WEIGHT, WEIGHTS};
現在、次を使用してフォームで表示しています:
<form:select path="type" items="${typeLabels}" itemValue="value" itemLabel="label">
<form:options/>
</form:select>
「typelabels」は、列挙値をラベルにマッピングする単純なオブジェクトのリストです。
List<ExerciseType> typeLabels = new ArrayList<ExerciseType>();
typeLabels.add(new ExerciseType(Type.BODY_WEIGHT, "Body weight"));
typeLabels.add(new ExerciseType(Type.WEIGHTS, "With weights"));
これはうまくいきます。
次に、enum をプロパティとしてオブジェクトのリストを表示します。
<c:forEach var="exercise" items="${list}" >
<tr>
<td>${exercise.title}</td>
<td>${exercise.description}</td>
<td>${exercise.type}</td>
</tr>
</c:forEach>
明らかに今、「BODY_WEIGHT」や「WEIGHTS」などの値を取得しています。
前の例と同様に、列挙値とそのラベルの間のマッピングのリストを提供する方法はありますか?
後でアプリケーションをローカライズしたいので、BODY_WEIGHT("Body weight") のようなもので列挙型にラベルをハードコーディングしたくありません。
ありがとう!
レオ