博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JSF---->事件处理--值变事件
阅读量:7221 次
发布时间:2019-06-29

本文共 2301 字,大约阅读时间需要 7 分钟。

如果使用者改变了JSF输入组件的值后送出窗体,就会发生值变事件(Value Change Event),这会丢出一个javax.faces.event.ValueChangeEvent对象,如果您想要处理这个事件,有两种方式,一是直接设定JSF输入组件的valueChangeListener属性,例如:

为选择了选单项目之后就立即发生反应,我们在onchange属性中使用了JavaScript,其作用是在选项项目发生改变之后,立即送出窗体,而不用按下提交按钮;而valueChangeListener属性所绑定的user.changeLocale方法必须接受ValueChangeEvent对象,例如:UserBean.java

package wsz.ncepu;import javax.faces.event.ValueChangeEvent;public class UserBean {	public String locale;	private String name;	private String password;	private String errMessage;	public void changeLocale(ValueChangeEvent event) {		if ("en".equals(locale))			locale = "zh_CN";		else			locale = "en";	}	public void setLocale(String locale) {		this.locale = locale;	}	public String getLocale() {		return this.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 = "错误 ";			return "failure";		} else {			return "success";		}	}}

另一个方法是实作javax.faces.event.ValueChangeListener接口,并定义其processValueChange()方法,例如:

SomeListener.java

package wsz.ncepu;import javax.faces.event.ValueChangeEvent;import javax.faces.event.ValueChangeListener;public class SomeListener implements ValueChangeListener {	public void processValueChange(ValueChangeEvent event) {		System.out.println("en".equals(wsz.ncepu.UserBean.locale));		if ("en".equals(wsz.ncepu.UserBean.locale))			wsz.ncepu.UserBean.locale = "zh_CN";		else			wsz.ncepu.UserBean.locale = "en";	}}

然后在JSF页面上使用<f:valueChangeListener>卷标,并设定其type属性,例如:

完整的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"%>
<h:outputText value="#{msgs.titleText}" />

:

:

 

 

转载地址:http://frqym.baihongyu.com/

你可能感兴趣的文章
Spring 框架是什么?
查看>>
Open***在linux上的完美实现
查看>>
利用haproxy+keepalived来实现基于http 七层负载均衡功能
查看>>
自动化部署必备技能之搭建YUM仓库
查看>>
20岁出头的时候,请摆正位置,一无所有却拥有一切
查看>>
eclipse中加入写好的android工程和出现的错误
查看>>
大脑如何休息
查看>>
rhel6atime,mtime,ctime
查看>>
设置RHEL6的SSH连接时间
查看>>
加快OSPF快速收敛的方法
查看>>
zabbix用户管理(9)
查看>>
MySQL数据库用户授权管理
查看>>
使用冒泡排序,排序多个字符串
查看>>
Huffman编码
查看>>
windows DHCP 服务器迁移技术文档
查看>>
Hql语句使用
查看>>
Spring2.5学习笔记2-AOP-利用通知接口
查看>>
不想转型高升?12条箴言助IT人士提高效率
查看>>
HP BL660 GEN8 SUSE 11 查询HBA信息 驱动版本 固件版本 设备名称
查看>>
幕夜萧萧,梦邀十月迷情
查看>>