JSF selectManyListbox(bindingで配置)@Java
selectManyListboxタグを配置します。
bindingを用います。
jspを作成します。
selectManyListboxとcommandButton、outputLabelを配置します。
ボタンを押したら、選択されたselectManyListboxの値を表示します。
Beanを作成します。
selectManyListboxにbindingするUISelectManyをメンバに持ちます。
コンストラクタで、UISelectManyを生成します。
UISelectItemを生成し、getChildren().add()にて追加します。
ボタンクリックのメソッドを作成します。
ActionEventを引数として持ちます。
selectManyListbox.getSelectedValues()にて、
選択された値を取り出します。
jsp
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<% request.setCharacterEncoding("UTF-8");%>
<%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
<%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>selectManyListbox binding</title>
</head>
<body>
<f:view>
<h:form>
selectManyListbox
<br>
<h:selectManyListbox binding="#{ViewPageBean.selectManyListbox}">
</h:selectManyListbox>
<br>
<h:commandButton value="選択" actionListener="#{ViewPageBean.btnClick}" />
<h:outputLabel value="#{ViewPageBean.msg}" />
</h:form>
</f:view>
</body>
</html>
|
Bean
package Beans;
import javax.faces.component.*;
import javax.faces.model.*;
public class ViewPageBean {
//javax.faces.component.UISelectMany
private UISelectMany selectManyListbox;
private String msg;
public ViewPageBean() {
//UISelectMany生成
selectManyListbox = new UISelectMany();
//javax.faces.model.UISelectItemを生成する。
UISelectItem itemA = new UISelectItem();
itemA.setValue(new SelectItem("ItemA", "ItemA"));
UISelectItem itemB = new UISelectItem();
itemB.setValue(new SelectItem("ItemB", "ItemB"));
UISelectItem itemC = new UISelectItem();
itemC.setValue(new SelectItem("ItemC", "ItemC"));
//selectManyListboxにUISelectItemを追加
selectManyListbox.getChildren().add(itemA);
selectManyListbox.getChildren().add(itemB);
selectManyListbox.getChildren().add(itemC);
msg = "";
}
public UISelectMany getSelectManyListbox() {
return this.selectManyListbox;
}
public void setSelectManyListbox(UISelectMany selectManyListbox) {
this.selectManyListbox = selectManyListbox;
}
public String getMsg() {
return this.msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public void btnClick(javax.faces.event.ActionEvent evt) {
for (int i=0;i<this.selectManyListbox.getSelectedValues().length;i++) {
msg += this.selectManyListbox.getSelectedValues()[i];
}
msg += "が選択されました。";
}
}
|