在部落客的學習日常中,常常遇到問題,注意到總結問題,寫下來幫助自己也幫助大家。
這次遇到的問題是s:combox預設指派value的問題,在新手的時候,很多人應該都會遇到這個問題,這裡用demo說明問題。
register.jsp
<TR>
<Td class="field">民族</Td>
<TD align="left">
<s:combobox list="nations" name="nation" listKey="id" listValue="idvalue"/>
</TD>
</TR>
這裡的list是實體,通過action頁面設定傳遞的,相信不是很菜的都能懂,就不多說這個問題了。
name是nation,通過struts.xml進入action層,Action層設定相應的getset方法就可以了,注意裡面的屬性一定是string類型,并且要與name的值一樣,(連資料庫也是一樣的,從資料庫擷取指派就好了,再傳到相應的頁面)背景擷取到後,轉向success.jsp頁面,來回顯。
success.jsp
民族:<s:combobox list="nations" name="nation" listKey="id" listValue="idvalue"></s:combobox><br>
部落客就是在這裡遇到問題的,假如你在register頁面選的是“漢族”,在success頁面也要顯示你剛剛選的值對吧?那麼問題來了,回顯時,大多都以為要在标簽裡面加value屬性,那麼你就錯了,這裡就是不能加value屬性,直接這樣就好了,struts2能自己識别到,你得到的就是你剛剛選中的值,然後你也可以選其他的值了,者通常用于使用者修改自己的資訊,首先回顯預設值,再修改。就是這樣了。