1. ListBeanに選択された値を扱う変数と処理を追加します。
2. list.jspを編集します(変数の追加・送信ボタンの追加)。
3. faces-config.xmlに画面遷移定義を追加します。
1. ListBeanに選択された値を扱う変数と処理を追加
package test.beans;
import java.util.List;
import javax.ejb.EJB;
import test.MySample;
import test.MySampleSessionLocal;
public class ListBean {
private static final long serialVersionUID = 1L;
List<MySample> mySamples = null;
// Stringにしないとエラーが出ます。理由はよく分かりません・・・
private String selectedIndex = null;
public String getSelectedIndex() {
return selectedIndex;
}
public void setSelectedIndex(String selectedIndex) {
this.selectedIndex = selectedIndex;
}
@EJB(name="MySample")
private MySampleSessionLocal mySampleSession;
public List<MySample> getMySamples() {
// まあ二回くらい呼ばれたっていいでしょう
if (mySamples == null) {
try {
List<MySample> tmpList = mySampleSession.listMySamples();
setMySamples(tmpList);
} catch (Exception e) {
//
}
}
return mySamples;
}
private void setMySamples(List<MySample> mySamples) {
// 読み取り専用
this.mySamples = mySamples;
}
public String executeTest() {
System.out.println("Selected index -> " + selectedIndex);
return "success";
}
}
2. list.jspを編集
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><%@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"%>
<%@ taglib uri="/WEB-INF/tld/mysample.tld" prefix="custom"%>
<html>
<head>
<title>list</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-31j">
</head>
<body>
<h2>リスト MySample</h2>
<f:view>
<h:form>
<h:dataTable value="#{listBean.mySamples}" var="item" border="1">
<h:column>
<f:facet name="header">
<h:outputText value="Select" />
</f:facet>
<custom:radioButton id="myRadioId1" name="myRadioCol"
overrideName="true" value="#{listBean.selectedIndex}"
itemValue="#{item.myid}" />
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="ID" />
</f:facet>
<f:verbatim>id: </f:verbatim>
<h:outputText value="#{item.myid}" />
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="VAL" />
</f:facet>
<f:verbatim>value: </f:verbatim>
<h:outputText value="#{item.myFlag}" />
</h:column>
</h:dataTable>
<h:commandButton value="実行"
action="#{listBean.executeTest}" />
</h:form>
</f:view>
</body>
</html>
3. faces-config.xmlに画面遷移定義を追加
<navigation-rule>
<from-view-id>list.jsp</from-view-id>
<navigation-case>
<from-outcome>success</from-outcome>
<to-view-id>list.jsp</to-view-id>
</navigation-case>
</navigation-rule>
以上。
.
0 件のコメント:
コメントを投稿