TomcatやJBossを使ってJSPでJavaBeansを使う時、EL式の中でif文や三項演算子が使いたい時があります。
そんな時、どうやったらよいかサンプルをここに記載したいと思います。
以下の様なJavaBeansがあったとします。
package test; public class Hoge { private int id; private String hoge; /** * @return id */ public int getId() { return id; } /** * @param id セットする id */ public void setId(int id) { this.id = id; } /** * @return hoge */ public String getHoge() { return hoge; } /** * @param hoge セットする hoge */ public void setHoge(String hoge) { this.hoge = hoge; } }
JSPでこのJavaBeansをEL式で表したサンプルを記載すると
<%@page import="test.Hoge"%> <%@page contentType="text/html; charset=utf-8"%> <!DOCTYPE HTML> <html lang="jp"> <head> <meta charset="utf-8"> </head> <body> <% Hoge hoge = new Hoge(); hoge.setId(1); hoge.setHoge("test"); request.setAttribute("hoge", hoge); %> <div>id:${hoge.id}</div> <div>hoge:${hoge.hoge}</div> <!-- if文 --> <div>id=1の時:${hoge.id == 1 ? 'True' : 'False'}</div> <div>id=2の時:${hoge.id == 2 ? 'True' : 'False'}</div> </body> </html>これを実行すると以下のようになる。
JSPの実行結果 |
${hoge.id == 1 ? 'True' : 'False'}で=1だったらTrue、それ以外はFalseになるという意味である。
また${hoge.id > 0 ? hoge.id: ""}の様な使い方もできる。
enumとの比較
enumとの比較は、Hoge.AAAと言うenumクラスがあったとしたら、${クラス.プロパティ == 'AAA' ? '真', '偽'}
となる。
0 コメント:
コメントを投稿