JSF中的标签的监听事件

在使用JSF技术的项目当中,我们经常要获得页面传来的值。传统的获取值的方法如下:

Mapparams=FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap();
StringorgId=(String)params.get("orgId");

但是,对于<h:selectOneMenu/>下拉列表框和<h:selectBooleanCheckBox/>复选框等,我们可以给这些标签加上监听事件,只要在该标签上有任何的操作在后台代码中都能获得标签的值。其中,我在实际项目开发过程中遇到了一个问题,最后才发现小小的区别。

在使用复选框标签<h:selectBooleanCheckBox/>标签时,我们也可以通过事件监听的方式获得该复选框的值。如下代码:

publicvoidvalueOfCheckBoxChange(ValueChangeEventevent){
HtmlSelectBooleanCheckboxcheckbox=(HtmlSelectBooleanCheckbox)event.getComponent();
booleancheckboxValue=(Boolean)checkbox.getValue();

if(checkboxValue==true){
Stringvalue=event.getOldValue().toString();
}

}

该代码中,checkbox是获得的复选框对象。checkboxValue的值是判断该复选框是否选中,如果选中则为true,否则为false。其中,对象event有两个常用的方法,在别的地方event.getNewValue()方法表示标签被操作后的值。但是,在针对复选框时,event.getNewValue()方法获得的值表示该复选框是否被选中,即为true或false。如果你想去的该复选框的value值,则你的使用event.getOldValue()方法。在这里这两个方法的使用好似和其他地方有点区别。在这里只是给大家提个醒,在以后用到得时候就不会浪费更多的时间了。

你可能感兴趣的:(JSF,事件监听)