一、概念介紹
stust1中html標籤的使用,其中有html:select,html:option,詳情如下
#
<html:select property="test String " size="1"> <html:option value="value1">Show Value1</html:option> <html:option value="value2">Show Value2</html:option> <html:option value="value3">Show Value3</html:option> <:html:submit property="submit" value="提交"/> </html:select>
其中,property表示該選擇清單與ActionForm中對應的屬性名稱。當使用者點擊提交後,會在測試頁面看到使用者所選取的選項的值。以下是程式碼的運作效果:
Show Value1 Show Value2 Show Value3
以下是multiple="true"和size="8"範例
value1 value2 value3 value4 value5 value6 value7 value8 value9 value10
當multiple屬性為true時,在屬性為true時,在屬性為true時,在屬性為true ActionForm中對應的屬性應為陣列類型以便同時向其賦上使用者選取的多個值。
<html:select property="testString" size="1"> <html:option value="value1">Show Value1</html:option> <html:option value="value2">Show Value2</html:option> <html:option value="value3">Show Value3</html:option> </html:select>
一個選項有兩個部分重要的內容。第一就是它所顯示給使用者的內容,這可以透過以下方式來指定:
<html:option value="value1">Show Value1</html:option>
可以看出,使用兩個
另一個重要的內容就是它所傳遞給ActionForm的值。這是由標記的value屬性指定的。如同上面的範例中,value的值分別為 value1,value2和value3,當使用者選取某個標記時,JSP頁面就會將該標記所對應的value傳給ActionForm中對應的屬性。
以下是運行效果:
Show Value1 Show Value2 Show Value3
二、不能不說的秘密
<html:option></html:option>转化成<option></option>时加了selected属性,RTFSC,看源码 if(selectTag().isMatched(value)) results.append(" selected=\"selected\""); public boolean isMatched(String value) { /* <-MISALIGNED-> */ /* 126*/ if(match == null || value == null) /* <-MISALIGNED-> */ /* 127*/ return false; /* <-MISALIGNED-> */ /* 130*/ for(int i = 0; i < match.length; i++) /* <-MISALIGNED-> */ /* 131*/ if(value.equals(match[i])) /* <-MISALIGNED-> */ /* 132*/ return true; /* <-MISALIGNED-> */ /* 135*/ return false; } if(value != null) {/* 234*/ match = new String[1]; /* 235*/ match[0] = value; } else { /* 238*/ Object bean = TagUtils.getInstance().lookup(super.pageContext, name, null); /* 239*/ if(bean == null) {/* 240*/ JspException e = new JspException(messages.getMessage("getter.bean", name)); /* 243*/ TagUtils.getInstance().saveException(super.pageContext, e); /* 244*/ throw e; } /* 248*/ try { /* <-MISALIGNED-> */ /* 248*/ match = BeanUtils.getArrayProperty(bean, property); //获取form中的select的value值 /* <-MISALIGNED-> */ /* 249*/ if(match == null) /* <-MISALIGNED-> */ /* 250*/ match = new String[0]; } /* 254*/ catch(IllegalAccessException e) { /* <-MISALIGNED-> */ /* 254*/ TagUtils.getInstance().saveException(super.pageContext, e); /* <-MISALIGNED-> */ /* 255*/ throw new JspException(messages.getMessage("getter.access", property, name)); }
三、沒有解決的問題,用html:option怎麼設定預設選中,其中沒有selected屬性
##以上是html中