国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
h:selectOneMenu 值變事件
Source: http://www.ntsky.com/docs/java/JSF/JSF/ValueChangeEvents.htm
如果使用者改變了JSF輸入元件的值后送出表單,就會(huì)發(fā)生值變事件(Value Change Event),這會(huì)丟出一個(gè)javax.faces.event.ValueChangeEvent物件,如果您想要處理這個(gè)事件,有兩種方式,一是直接設(shè)定JSF輸入元件的valueChangeListener屬性,例如:
 <h:selectOneMenu value="#{user.locale}"
                  onchange="this.form.submit();"
                  valueChangeListener="#{user.changeLocale}">

     <f:selectItem itemValue="zh_TW" itemLabel="Chinese"/>
     <f:selectItem itemValue="en" itemLabel="English"/>
 </h:selectOneMenu>
 
為了模擬GUI中選擇了選單項(xiàng)目之后就立即發(fā)生反應(yīng),我們?cè)趏nchange屬性中使用了JavaScript,其作用是在選項(xiàng)項(xiàng)目發(fā)生改變之后,立即送出表單,而不用按下提交按鈕;而valueChangeListener屬性所綁定的user.changeLocale方法必須接受 ValueChangeEvent物件,例如:
  • UserBean.java
package onlyfun.caterpillar;

import javax.faces.event.ValueChangeEvent;

public class UserBean {
private String locale = "en";
private String name;
private String password;
private String errMessage;

public void changeLocale(ValueChangeEvent event) {
if(locale.equals("en"))
locale = "zh_TW";
else
locale = "en";
}

public void setLocale(String locale) {
this.locale = locale;
}

public String getLocale() {
if (locale == null) {
locale = "en";
}
return locale;
}

public void setName(String name) {
this.name = name;
}

public String getName() {
return name;
}

public void setPassword(String password) {
this.password = password;
}

public String getPassword() {
return password;
}

public void setErrMessage(String errMessage) {
this.errMessage = errMessage;
}

public String getErrMessage() {
return errMessage;
}

public String verify() {
if(!name.equals("justin") ||
!password.equals("123456")) {
errMessage = "名稱或密碼錯(cuò)誤";
return "failure";
}
else {
return "success";
}
}
}

另一個(gè)方法是實(shí)作javax.faces.event.ValueChangeListener介面,并定義其processValueChange() 方法,例如:
 package onlyfun.caterpillar;
 ....
 public class SomeListener implements ValueChangeListener {
    public void processValueChange(ValueChangeEvent event) {
        ....
    }
    ....
 }
 
然后在JSF頁(yè)面上使用<f:valueChangeListener>標(biāo)簽,并設(shè)定其type屬性,例如:
 <h:selectOneMenu value="#{user.locale}"
                  onchange="this.form.submit();">
     <f:valueChangeListener
              type="onlyfun.caterpillar.SomeListener"/>
     <f:selectItem itemValue="zh_TW" itemLabel="Chinese"/>
     <f:selectItem itemValue="en" itemLabel="English"/>
 </h:selectOneMenu>
 
下面這個(gè)頁(yè)面是對(duì) 立即事件 中的范例程式作一個(gè)修改,將語(yǔ)言選項(xiàng)改以下拉式選單的選擇方式呈現(xiàn),這必須配合上面提供的UserBean類別來(lái)使用:
  • index.jsp
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@page contentType="text/html;charset=UTF8"%>

<f:view locale="#{user.locale}">
<f:loadBundle basename="messages" var="msgs"/>

<html>
<head>
<title><h:outputText value="#{msgs.titleText}"/></title>
</head>
<body>

<h:form>
<h:selectOneMenu value="#{user.locale}"
immediate="true"
onchange="this.form.submit();"
valueChangeListener="#{user.changeLocale}">

<f:selectItem itemValue="zh_TW"
itemLabel="Chinese"/>
<f:selectItem itemValue="en"
itemLabel="English"/>
</h:selectOneMenu>

<h3><h:outputText value="#{msgs.hintText}"/></h3>
<h:outputText value="#{msgs.nameText}"/>:
<h:inputText value="#{user.name}"/><p>
<h:outputText value="#{msgs.passText}"/>:
<h:inputSecret value="#{user.password}"/><p>
<h:commandButton value="#{msgs.commandText}"
action="#{user.verify}"/>
</h:form>

</body>
</html>

</f:view>
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
基于faces portlet開發(fā)框架構(gòu)建portlet表單應(yīng)用
二十四、 選擇類標(biāo)籤二十五、 其它標(biāo)籤
各種JSF HTML標(biāo)簽總結(jié)
C#放縮、截取、合并圖片并生成高質(zhì)量新圖的類
C#與javascript—正則寫法
Inside Java2Script | A Book about Java to JavaScript Details
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服