一、現用selectonemenu實作多極關聯下拉框
功能是類似這樣的第一個下拉框顯示國家名
第二個下拉框顯示省名
第三個下拉框顯示市名
改變國家名時 省名和市名都變化
改變省名時 市名變化
将selectonemenu的immediate屬性設為true時,隻考慮這三個下拉框可以達到目的
但是其他的帶有送出動作immediate屬性為false的元件必須送出兩次行
第一次會先執行下拉框的valuechange事件,然後就會直接跳到響應階段
第二次則不會執行valuechange事件 原因不明
如果不将selectonemenu的immediate屬性設為true
改變國家名後,省名的valuechange事件也會執行,而且value值還被設成了以前的值 市名就又變回原來的清單值了
哪位大俠知道怎麼解決
二、 <h:selectonemenu id="selectCar" value="#{form.name}"></h:selectonemenu>
<f:selectitems value="#{form.curlist}"></f:selectitems>
怎樣從java中獲得一個集合對象來填充這個下拉清單
解決: public List getCurlist() {
List curlist = new ArrayList();
curlist.add(new SelectItem("1","aaa"));
curlist.add(new SelectItem("2","bbb"));
curlist.add(new SelectItem("3","ccc"));
<o:p> </o:p>
return curlist;
}
三、一個下拉框觸發一個onchang事件。将頁面重定向到另一個葉面
public String changText(ValueChangeEvent event)
{
FacesContext fcontext = FacesContext.getCurrentInstance();
String str = event.getNewValue().toString();
loginfo.info("name:"+str);
if(str.equals("1"))
return "showInformation"; //重頂向沒有起到作用
else
return "success";
}
四、required="true" 與 immediate="true"差別 在每個錄入框中加入。頁面調用預設的驗證方式
一個事件的基本流程:重建試圖、套用請求值、執行驗證、更新模型值、喚起應用程式、繪制響應頁面
<o:p> </o:p>
immediate="true:元件在套用請求值後進行處理,并跳過後續的階段。直接進行頁面繪制以響應請求,
他将指定的事件成為即時事件
<code>
<tr>
<td><h:outputText value="#{msgs.namePrompt}" /></td>
<td><h:inputSecret value="#{user.password}" required="true">
<f:validator validatorId="onlyfun.caterpillar.Password" />
<f:attribute name="pattern" value=".+[0-9]+" />
</h:inputSecret>
<p>
</td>
</tr>
</code>
<h:outputtext value="#{msgs.namePrompt}"></h:outputtext>
<h:inputsecret value="#{user.password}" required="true"></h:inputsecret>
<f:validator validatorid="onlyfun.caterpillar.Password"></f:validator>
<f:attribute name="pattern" value=".+[0-9]+"></f:attribute>