特に作りたいものがないのでDropDownChoiceを使ってみた。WicketのJavaDocに書いてある内容をそのまま使った感じだけど、自分で実際に書いてみたかったので作った。
DropDownTest.html
<html> <head> <title>DropDownTest</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> </head> <body> <form wicket:id="form"> <select wicket:id="choice"> <option>テスト1</option> <option>テスト2</option> </select> <input type="submit" value="選択" wicket:id="submit"/> </form> <span wicket:id="yourChoice">あなたが選んだのはテスト1です</span> </body> </html>
DropDownTest.java
package dropdown; import java.util.List; import java.util.Arrays; import org.apache.wicket.markup.html.WebPage; import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.markup.html.form.Form; import org.apache.wicket.markup.html.form.DropDownChoice; import org.apache.wicket.markup.html.form.Button; import org.apache.wicket.model.Model; public class DropDownTest extends WebPage{ public DropDownTest(){ //submitボタンを押したときにDropDownChoiceで選んだ項目を表示するラベル final Label label = new Label("yourChoice", new Model()); Form form = new Form("form"); //DropDownChoiceに表示させるリスト List testList = Arrays.asList(new String[]{"テスト1", "テスト2", "テスト3"}); final DropDownChoice choice = new DropDownChoice("choice", new Model(), testList); Button submitButton = new Button("submit"){ @Override public void onSubmit(){ String selectedText = choice.getModelObjectAsString(); //選択しないままボタンを押したときは何もしない if(selectedText.isEmpty()) return; String text = "あなたが選んだのは"; text += selectedText; text += "です"; label.setModelObject(text); } }; add(label); form.add(choice); form.add(submitButton); add(form); } }
DropDownApplication.java
package dropdown; import org.apache.wicket.protocol.http.WebApplication; public class DropDownApplication extends WebApplication{ public Class getHomePage(){ return DropDownTest.class; } }
<filter> <filter-name>DropDownTest</filter-name> <filter-class>org.apache.wicket.protocol.http.WicketFilter</filter-class> <init-param> <param-name>applicationClassName</param-name> <param-value>dropdown.DropDownApplication</param-value> </init-param> </filter> <filter-mapping> <filter-name>DropDownTest</filter-name> <url-pattern>/dropdown/*</url-pattern> </filter-mapping>