2008年10月16日 星期四

Wicket的CheckBoxMultipleChoice元件

網頁中多少都有讓使用勾選的項目,透過CheckBoxMultipleChoice元件可快速產生多個CheckBox,不需在html中一個個的寫<input type="checkbox">,可讓html程式碼更簡潔易懂.

步驟一.建置CheckBoxExamples.html

<html>
<body>
<form wicket:id="form">
<h3>這是Check Box</h3>
<span wicket:id="site"></span>
<h3>2</h3>
<span wicket:id="sites"></span>
</form>
</body>
</html>

步驟二.建置CheckBoxExamples.java

package wicket.examples.html.body.form.checkbox;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import wicket.markup.html.WebPage;
import wicket.markup.html.form.CheckBoxMultipleChoice;
import wicket.markup.html.form.ChoiceRenderer;
import wicket.markup.html.form.Form;
import wicket.markup.html.form.IChoiceRenderer;

public class CheckBoxExamples extends WebPage {

private static List SITES = new ArrayList();
private static Map NAMES = new HashMap();

static{
SITES.add("http://java.sun.com");
SITES.add("http://wicket.apache.org/");
SITES.add("http://www.hibernate.org/hib_docs/reference/en/html/index.html");

NAMES.put("http://java.sun.com", "SUN");
NAMES.put("http://wicket.apache.org/", "Wicket");
NAMES.put("http://www.hibernate.org/hib_docs/reference/en/html/index.html", "hibernate");
}
public CheckBoxExamples(){
super();
Form cForm = new Form("form");

IChoiceRenderer cRend = new ChoiceRenderer(){
public Object getDisplayValue(Object object){
return NAMES.get(object);
}
};

CheckBoxMultipleChoice cSitesChoice = new CheckBoxMultipleChoice("sites",SITES,cRend);
cForm.add(cSitesChoice);

CheckBoxMultipleChoice cSiteChoice = new CheckBoxMultipleChoice("site",SITES);
cForm.add(cSiteChoice);
this.add(cForm);
}
}

步驟三.修改Examples.html & Examples.java

...
<tr>
<td><a wicket:id="Examples12">show CheckBoxExamplesPage</a></td>
</tr>
...


...
add(new PageLink("Examples12",CheckBoxExamples.class));
...

沒有留言: