checkbox in used in ForEach
ForEach内でのチェックボックスの使用例は以下の通りです。
一覧画面で先頭にチェックボックスがある画面はよくあると思います。
test.html
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>Test</title> </head> <body> <form id="testForm"> <span id="allMessages"/> <input type="hidden" id="testItemsSave"/> <table border="1"> <tr> <th>aaa</th> <th>bbb</th> <th>ccc</th> </tr> <div id="testItems"> <tr> <td><input type="checkbox" id="aaa"/></td> <td><span id="bbb">BBB</span></td> <td><span id="ccc">CCC</span></td> </tr> </div> </table> <input type="submit" id="doTest" value="test"/> </form> </body> </html>
次にPageクラスTestPage.java
public class TestPage { private TestDto[] testItems; private boolean aaa; private String bbb; private String ccc; public String doTest() { for (int i = 0, cnt = testItems.length; i < cnt; i++) { if (testItems[i].isAaa()) { System.out.println(i + "番目はチェックされてるから削除します"); // hogeDao.delete(aaaItems[i]); // 例 } else { System.out.println(i + "番目は未チェック!"); } } return null; } public TestDto[] getTestItems() { if (testItems == null) { testItems = new TestDto[3]; testItems[0] = createItem(false, "AAA1", "BBB1"); testItems[1] = createItem(false, "AAA2", "BBB2"); testItems[2] = createItem(false, "AAA3", "BBB3"); } return testItems; } private TestDto createItem(boolean aaa, String bbb, String ccc) { TestDto item = new TestDto(); item.setAaa(aaa); item.setBbb(bbb); item.setCcc(ccc); return item; } // それぞれのgetter, setterは省略 }
TestDto.java
public class TestDto implements Serializable { private static final long serialVersionUID = 1L; private boolean aaa; private String bbb; private String ccc; public TestDto() { } // それぞれのgetter, setterは省略 }
これで画面でチェックボックスを選択・未選択でメッセージが表示されている事が分かります。
また、HTML側はhiddenタグにてItemsSaveを忘れないようにしてください。