說說最簡單的<s:selelct />其他的以此類推:
·select標籤必須屬性只有一個爲List
·select一定要有值,否則出錯。如果我們在html中使用select時會有個默認的值,在Struts2中也是一樣的,如果List,沒有值可以加上headerKey,headerValue就可以通過。
·List屬性的值在Action中定義,必須爲一個迭代的List/Map/Set,本例採用List
· listKey對應html表單select中的value,listValue對應html表單中的option
·List/Set的listKey和listValue是一樣的
·如果是Map,則map的key對應key,map的value對應value
如下代碼:
<body>
<s:form action="admin/admin_add_Course">
<s:textfield name="course.name" label="課程名"/>
<s:textfield name="course.score" label="課程學分"/>
<s:select list="myClassList" name="myClass.myClassId" label="班級"
listKey="myClassId" listValue="myClassId"
headerKey="0" headerValue="---請選擇班級---"/>
<s:select list="{'是','否'}" name="course.firstTerm" label="是否上學期"
headerKey="0" headerValue="---請選擇學期---"/>
<s:textfield name="course.year" label="年度"/>
<s:submit value="添加"/>
</s:form>
</body>
myClassList爲action中list的對象,也就是getter/setter方法的名字,Struts2支持POJO訪問,listKey的值”myClassId”則爲VO對象 (MyClass)的屬性
(myClassId)(Struts2支持OGNL)我們還可以加上headerKey和headerValue用以顯示首行的提示,大家可以加上試試,注意:headerKey的值不能爲-1否則編譯不能通過。