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 コメント:
コメントを投稿