JSF标签的使用1

#{…} 表达式的三种含义

n 指定输出值

Ø #{ varName.propertyName }

含义为输出特定范围域变量或托管bean的指定属性

Ø < h:outputText value=“#{ employee.address }” />

任何时候访问都是一个输出的文本

Ø < h:inputText value=“#{ employee.address }” />

当表单初始显示时,代表一个预装配的值

n 指定提交值

Ø h: inputText value="#{ employee.address }“ />

指定当表单提交时指定将值存放在何处

n 指定提交后的方法调用

Ø < h: commandButton value="Button Label" action="#{ employee.processEmployee }“ />

指定表单提交时的action处理器

n ActionController

Ø 即便已经有ActionListener,但在某些情况下还需要ActionController

如前所说,它们调用业务逻辑和参与导航

Setter方法与验证会在ActionController执行处理前调用

n CActionListener

Ø ActionListener表现服务器端效果,并在表单上重新显示

通常,它们不调用业务逻辑、setter方法,且从不参与页面导航

正常情况下,你应该用”immediate”来显式指明setter方法不被调用

n <h:form>

n ...

n <h:commandButton

n value="#{resumeBean.colorSupportLabel}"

n actionListener="#{resumeBean.toggleColorSupport}"

n immediate="true"/>

n </h:form>

ActionListener能访问GUI对象底层详细信息:

如:Renderer、client ID等,当我们覆盖用户自定义控件时尤其需要。

最通用的例子:针对图形的客户端与服务器端映射

public void selectGrayLevel(ActionEvent event) {

FacesContext context = FacesContext.getCurrentInstance();

String clientId = event.getComponent().getClientId(context);

HttpServletRequest request = (HttpServletRequest)context.getExternalContext().getRequest();

takeActionBasedOn(flag);

}

public void someMethod(ValueChangeEvent event) {

boolean flag = ((Boolean)event.getNewValue()).booleanValue();

Ø FirefoxIE对事件的响应不一样

当组合框的选项改变、单选框被选中或复选框被check/uncheck时,FirefoxNetscapeOpera fire触发onchange事件

IE需在选项发生变化且其他GUI控件获得聚焦时触发事件

n ActionListener隶属于按钮控件

Ø 当点击按钮时会自动提交表单

n ValueChangeListener隶属于组合框、列表框、单选框、复选框、文本框等

Ø 不会自动提交表单

Ø 需要添加onclick=”submit()”onchange=”submit()”JavaScript代码才能提交表单

n 一些按钮提交表单并在后端进行业务处理,用的是 Action Controller而并非 ActionListener

Ø <h:commandButton action="..." .../>

n 倘若另一些按钮只影响UI,此时,应该用ActionListener

Ø <h:commandButton actionListener="..." .../>

Ø 你通常希望这个处理发生在beansform数据被加载之前,特别是在验证控件进行验证前

因为通常情况下,当UI被调整时,表单的信息并不完整

Ø ”immediate”可明确指定这个listenerbeanform数据被加载前或触发验证前调用

Ø ActionController主要用于处理表单

ActionController被调用之前,form的数据会被填充在ManagedBean

ActionController调用之前,还会完成验证逻辑的调用(请看后面章节)

返回字符串(导航条件),直接影响页面导航

Ø 事件监听器处理UI事件

通常在form数据被填充给ManagedBean之前调用

通常会绕过验证逻辑

从不直接影响页面导航

n ActionListener

Ø 在点击按钮、图形映射和附带JavaScript的超链接时调用

Ø 自动提交对应的表单

n ValueChangeListener

Ø 在点击组合框、复选框、单选框、文本框等控件时调用

Ø 不会自动提交对应的表单

Ø Action Controller:在后端程序处理的事件(通常这类事件会涉及业务逻辑)

Ø ActionListenerValueChangeListener:会对用户界面(UI)产生影响的事件

Ø JSF将上述事件的处理方法划分为ActionController(行为控制器)和事件监听器(ActionListenerValueChangeListener

消息

n 简单消息

n 参数化消息

n 国际化消息

n WEB-INF/classes下创建一个.properties文件

n 值包含{0}, {1}, {2},

n 例如,someName=blah {0} blah {1}

n 注意:在Myfaces中赋值不能使用单引号

n 使用f:loadBundle标签装载属性文件

n basename 指定了该文件名

n 使用var指定引用该文件的变量名

n 输出消息使用h:outputFormat标签

n value指定了base message名称

n 其中的f:param标签指定了子属性名称

n 例如:

n h:outputFormat value="#{msgs.someName}">

n <f:param value="value for 0th entry"/>

n <f:param value="value for 1st entry"/>

n </h:outputFormat>

同一路径命令行中使用转换编码命令:

n native2ascii –encoding utf8 messages2_zh_CN.properties messages2_zh_CN.properties

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值