JSF学习笔记二

JSF国际化信息:

资源文件:
资源文件名由 basename+语言+地区 组成,如message_zh_CN.properties
使用<f:loadBundle>来指定载入信息资源。如<f:loadBundle basename="message" var="msg"/>
<h:outputText value="#{msg.titleTest}"/>
应用<f:view locale="zh_CN">直接指定所要用的语系。

在faces-config.xml中设置语系:
<application>
<locale-config>
<default-locale>en</default-locale>
<supported-locale>zh_CN</supported-locale>
</locale-config>
</application>
<default-locale>必须有一个,<supported-locale>可以有多个。

JSF中使用Bean:
页面中注意区分jsp表示语言${}和JSF表示语言#{},注意JSF的标签上的属性设定时,只接受JSF表示语言。

bean的配置与设定:
JSF预定义会读取faces-config.xml中关于bean的定义,如果想自行设置定义文件的名称,则在web.xml中设置:
<context-param>
<param-name>javax.faces.CONFIG_FILES</param-name>
<param-value>/WEB-INF/beans1.xml,/WEB-INF/beans2.xml</param-value>
</context-param>

在其他bean中取得设置的bean:
FacesContext context = FacesContext.getCurrentInstance();
//得到bean
ValueBinding binding = context.getApplication().createValueBinding("#{user}");
//如果是得到bean的属性
//ValueBinding binding = context.getApplication().createValueBinding("#{user.name}");
User user = (User)binding.getValue(context);

启动bean时,自动设置bean的初始值:
<managed-bean>
<managed-bean-name>user</managed-bean-name>
<managed-bean-class>com.zdx.po.User</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
<!-- 设置name初始值为zdx -->
<managed-property>
<property-name>name</property-name>
<value>zdx</value>
</managed-property>
<!-- 设置password初始值为null -->
<managed-property>
<property-name>name</property-name>
<null-value/>
</managed-property>
</managed-bean>

标准转换器:
<f:convertDateTime pattern="dd/MM/yyyy"/>
<f:convertNumber />
自定义转换器:
实现javax.faces.convert.Converter接口。
例如:

public class MyConvert implements Converter {

public Object getAsObject(FacesContext arg0, UIComponent arg1, String arg2) {

String [] strs = arg2.split(",");

User user = new User();
user.setName(strs[0]);
user.setPassword(strs[1]);

return user;
}

public String getAsString(FacesContext arg0, UIComponent arg1, Object arg2) {

String name = ((User)arg2).getName();
String password = ((User)arg2).getPassword();

return name+","+password;
}

}
然后我们就应该告诉JSF这件事(在faces-config.xml中注册):
<converter>
<converter-id>com.zdx.User</converter-id>
<converter-class>com.zdx.MyConvert</converter-class>
</converter>
在jsf页面中使用转换器的话,就要指定所要使用的转换器标识(converter-id),如:
<h:outputText value="#{user}" converter="com.zdx.User"/>或者
<h:outputText value="#{user}">
<f:converter converterId="com.zdx.User"/>
</h:outputText>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值