GATSBYER 2010-08-11
复选框的设计:复选框在struts的设计非常灵活,也是使用非常多的一种form的类型。第一种使用Map操作。页面设计,()的为key值:
<html:checkbox property="linuxdist(redhat)" value="Redhat/Fedora Linux"/>Redhat/Fedora Linux<br> <html:checkboxproperty="linuxdist(mdk)"value="MandrakeLinux"/>MandrakeLinux<br> <html:checkboxproperty="linuxdist(suse)"value="SuseLinux"/>SuseLinux<br> <html:checkboxproperty="linuxdist(debian)"value="Debian/Debian-basedLinux"/>Debian/Debian-basedLinux<br> <html:checkbox property="linuxdist(none)" value="None above"/>None above |
SurveyForm 中的对应代码。
private Map linuxdists=new HashMap(); publicvoidsetLinuxdists(MaplinuxDists){ this.linuxdists=linuxDists; } publicMapgetLinuxdists(){ returnlinuxdists; } publicvoidsetLinuxdist(Stringkey,Stringvalue){ linuxdists.put(key,value); } publicStringgetLinuxdist(Stringkey){ return(String)linuxdists.get(key); } |
注意其中的单数和复数。第二种,数组的使用,property使用同一值。对应的页面中和ActionForm的定义。
<html:checkbox property="perferredDesktop" value="Gnome"/>Gnome<br> <html:checkboxproperty="perferredDesktop"value="KDE"/>KDE<br> <html:checkboxproperty="perferredDesktop"value="XFCE"/>XFCE<br> <html:checkbox property="perferredDesktop" value="Other window manager" />Other window manager |
private String[] perferredDesktop; publicvoidsetPerferredDesktop(String[]perferredDesktop){ this.perferredDesktop=perferredDesktop; } publicString[]getPerferredDesktop(){ returnperferredDesktop; } |
第三种,boolean型的使用,当需要选择是和否,使用这种情况,此属性返回true或false 。
<html:checkbox property="surveyPublic" /> |
SurveyForm 中的定义:
private boolean surveyPublic ; publicvoidsetSurveyPublic(booleansurveyPublic){ this.surveyPublic=surveyPublic; } publicbooleanisSurveyPublic(){ returnsurveyPublic; } |