2008年10月16日木曜日

JSFが気になっていた(3)

チュートリアル+αの実装をしてみたので報告です。微々たるものですが、ラジオボタンにイベントを設定してみました。

JSFがほとんど思った通りに動いてくれるので、公開する意味は薄いと思ってます(つまり、この実装を参考にするまでもなく出来てしまう)まあ、一応ってことで。
あ、一つだけ注意があります。私はEclipse3.4を使っているのですが、JSPをリフレッシュするためにはTomcatの一時作業ディレクトリを毎回クリアする必要がありました(サーバviewで対象サーバを右クリック、"Clean Tomcat Work Directory..."を選択、再起動)。

■JSP
<%@ page language="java" contentType="text/html; charset=windows-31j"
pageEncoding="windows-31j"%>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<f:view>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=windows-31j">
<title>Radioボタンテスト</title>
</head>
<body bgcolor="<h:outputText value="#{evTest.bgColor}"/>">
<h:form>
<h:selectOneRadio value="#{evTest.bgColor}"
valueChangeListener="#{evTest.changeBgColor}"
onclick="submit()"
immediate="true">
<f:selectItems value="#{evTest.availableColors}" />
</h:selectOneRadio>
</h:form>
</body>
</html>
</f:view>

■Java Bean。
package at;

import javax.faces.event.ValueChangeEvent;
import javax.faces.model.SelectItem;

public class EvTest {
private String bgColor = "WHITE";
private SelectItem[] availableColors = { new SelectItem("BLACK"),
new SelectItem("WHITE"), new SelectItem("SILVER"),
new SelectItem("RED"), new SelectItem("GREEN"),
new SelectItem("BLUE") };

public String getBgColor() {
return bgColor;
}
public void setBgColor(String bgColor) {
this.bgColor = bgColor;
}
public SelectItem[] getAvailableColors() {
return availableColors;
}
public void changeBgColor(ValueChangeEvent event) {
String color = event.getNewValue().toString();
setBgColor(color);
}

}

■faces-config.xml。Nothing specialです。
 <managed-bean>
<managed-bean-name>evTest</managed-bean-name>
<managed-bean-class>at.EvTest</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>

以上
.

1 件のコメント:

師子乃 さんのコメント...

こんにちは。

かなり昔から実積はあるんですね。