前提・実現したいこと
Javaを学習し始めてまだ半年ぐらいの初心者です。
1.jspでEL式(JSTL)を使用して列挙型や定数クラスのフィールドを参照したい。
※下記コードのようにスクリプトレットを使用すると動作はしますが、スクリプトレットを使用しない方法がわかりません。
2・下記コードで正常に動作するが、列挙型をjspで参照する方法はこれが最適解なのか。
EL式では可能かどうかさえ分からない状況 + 列挙型の使用方法についても自信の持てない状態です。
どなたかご指摘頂けると幸いです。。
発生している問題・エラーメッセージ
エラーメッセージ
該当のソースコード
JAVA
1public class Constant { 2 3 /* アドレス */ 4 public static final String LOGIN_SERVLET = "./login"; //ログインサーブレット
jsp
1<form action=<%=Constants.LOGIN_SERVLET %> method="post"> 2 <input type="text" name="loginId">ログインID 3 <input type="password" name="password">パスワード 4 <input type="submit" value="送信"> 5</form>
JAVA
1session.setAttribute("gender",Gender.values());
JAVA
1public enum Gender { 2 3 MAN("男","0"), //男 4 FEMALE("女","1"); //女 5 6 private String label; //コード名 7 private String num; //コード値 8 9 private Gender(String label,String num) { 10 this.label = label; 11 this.num = num; 12 } 13 14 public String getLabel() { 15 return this.label; 16 } 17 18 public String getNum() { 19 return this.num; 20 } 21 public static String getLabelByNum(String num) { 22 for (Gender g : Gender.values()) { 23 if (g.getNum().equals(num)) { 24 return g.getLabel(); 25 } 26 } 27 return null; 28 } 29}
jsp
1<c:forEach var="gender" items="${gender}"> 2 <label for=<c:out value="${gender.name()}"/> 3 <input type="radio" 4 name="sex" id=<c:out value="${gender.name()}"/> value=<c:out value="${gender.getNum()}"/>> 5 <c:out value="${gender.getLabel()}" /> 6 </label> 7</c:forEach>
試したこと
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/10/06 14:17
2018/10/06 16:09