JSF 2 简介: 后来添加的 Ajax 复合组件
2010-07-13 00:00:00 来源:WEB开发网清单 1 中的 facelet 为图标组件声明一个名称空间,并在页面中使用该组件。这使用了 JSF 2.0 复合组件 101,详细信息请参见 “JSF 2 简介,第 2 部分:模板及复合组件。”
请注意,两个图标都为图标的 link 组件配备了一个动作侦听器。当用户单击图标的链接时,JSF 调用服务器上的该侦听器,如清单 2 所示。
清单 2. 侦听器 (com/clarity/FontSelectionListener.java)
package com.clarity;
import javax.el.ELResolver;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.event.AbortProcessingException;
import javax.faces.event.ActionEvent;
import javax.faces.event.ActionListener;
public class FontSelectionListener implements ActionListener {
@Override
public void processAction(ActionEvent event)
throws AbortProcessingException {
FacesContext c = FacesContext.getCurrentInstance();
ELResolver elResolver = c.getApplication().getELResolver();
FontSettings fs = (FontSettings)
elResolver.getValue(c.getELContext(), null, "fontSettings");
if (((UIComponent)event.getSource()).getClientId().startsWith("minus"))
fs.decrement();
else
fs.increment();
}
}
在 清单 2 中,我查看触发事件的客户端标识符是否是 minus,如果是,我就知道用户单击了减号图标,然后我将减小字体大小。否则,我将增大字体大小。
更多精彩
赞助商链接