使用下面的标签用法时要注意一点,只要在页面上显示的标签内容必须嵌套在
<f:view><f:view>中
1、转换器——转换数据类型或转换显示格式;
<f:convertNumber minFractionDigits="2"/>
转换数字类型,minFractionDigits属性设置保留最小的小数位数为2
minFractionDigits属性设置保留最小的小数位数为2
以上是它的一些属性,常用的是比如限制它的小数位数,它是可以四舍五入的哦~p~,当我们使用type时,指定要转换的类型时,通常可以给些货币显示,如 currency 代表(流通)货币的意思
<h:outputText value="#{test.number}">
<f:convertNumber type="currency" maxFractionDigits="2"/>
</h:outputText>
日期转换:
<h:outputText value="#{test.date}">
<f:convertDateTime pattern="yyyy-MM-dd"/>
</h:outputText>
由上面两种转换得出的结果输出为
注意的是转换的标签要在被转换数据的之间。。。
日期转换: 2008-10-12 数字带货币显示: ¥4.46
日期年有日期都用小写,月份特殊些,要大写,为了与分钟区别开来,¥符号是指当前系统使用的货币为准
2、
验证器——验证输入组件中的值;
首先看上面的一小段代码。它是要求数值必须是大于10并且小于10000的。属于范围验证
而用法跟要转换的一样要嵌套在被验证的标签之间。。
验证完之后显示的错误消息要用<h:message>来显示。属性for是指来自于哪个验证,一般在被验证上要有id这属性的名字与期对应
<f:validateDoubleRange minimum="10" maximum="10000"/>
<f:validateLength minimum="13"/> 在输入组件值非空时才验证
required="true" ——非空验证
这里验证失败的消息是JSF自带的错误消息,如果要想改变其输出内容要执行下面几步
1)因为它记录的验证信息比较多,所以我们找到默认的消息文件。
在Web站点下的lib目录里找到jsf-impl.jar包,里面目录中javax.faces/下包含了四个资源文件
以Messages为例打开找到相应的提示错误消息后把内容转换成中文,(需要转换成ACSII码),之后就建立一个默认的文件Message.properties 再建立一个Message_zh_CN.properties文件,把相应要替换的错误消息存入这两资源文件中。
2)配置faces-config.xml文件
在根元素后面加上这样的代码
<application>
<message-bundle>Message</message-bundle>
</application>
Message为资源文件的文件名
这里要注意的问题是。。。没整理出来,自己都没配置成功。嘿嘿
3、显示数据,类似于迭带输入,但这里的dataTable可以生成表格。
<h:dataTable/>
下面看一个完整的前台JSP页面的代码
需要注意的是:
1.上面的代码都是需要输入显示的,所以必须在<f:view>之间,
2.需要对输出的内容设置“受管Bean”。上面的受管BEAN别名为stu
3.在dataTable后面的属性 value中指定的属性必须是受管Bean中带get的方法。如上面的是getShow()方法
4.在表格中显示的表头为固定格式,所以它要使用到了<f:facet>标签,属性name写死,为header指定为表头
文字要在其之间嵌套输出标签<outputText>内容写在属性value中
5.如果需要在表格中产生提交事件的必须要在form表单中。。。。。切记!!
4、
JSF常用标签
超链接标签-commandLink 注意该标签必须使用监听,否则直接指定action处理器的也报错。。切记!!
接下来是一次知识的补充,有时候会用得上
一:jsfconverter(自定义消息)
这个上面有总结,只是没配置成功。步骤都一样了。这里就不重复阐述了因为下面第二点也会对自定义消息使用上:)
二: 业务验证消息
1)首先建立一个资源文件. Properties文件。如Message
<application>
<message-bundle>Message</message-bundle>
</application>
2)在faces-config.xml中配置上面元素
在faces-config.xml中配置上面元素
3)在message.properties文件中设置消息文字
error.noequal=\u7528\u6237\u540d\u6216\u5bc6\u7801\u9519\u8bef.
error.haha=\u7528\u6237\u540d.
java.faces.component.UIInput.REQUIRED=haha\: {0}Value is required:).
javax.faces.component.UIInput.REQUIRED这个为替换原始提示的消息,而上面的error.noequal是自定义的提示消息
4)在页面表单上加上下面代码
<f:view>
<h:form>
<h:message style="color:blue"/><br/>
用户名:<h:inputText id="username" value="#{userform.username}"/><br/>
密码:<h:inputSecret id="密码" value="#{userform.userpass}" required="true"/>
<h:message for="密码" style="color:blue"/><br/>
<h:commandbutton value="登陆" actionListener="#{userform.login}" action="#{userform.outcome}"/>
</h:form>
</f:view>
这里用户名与密码填写相同我们就让其可以正常登陆,否则就作出两种消息提示,一种是密码非空,二是用户名与密码不一致的提示;
显示验证错误的消息使用标签<h:messages>,显示非空的我们使用<h:message for=”此处为参数显示的值,可中文”>
做好前台页面准备之后就对此处的提交按钮加上ACTION处理器及其监听方法
一个为actionListener=”#{userform.login}” 监听方法
另一个为action=”#{userform.outcom}” action处理器
//action处理器
public String outcome(){
return str;
}
public void login(ActionEvent e){
if(username.equals(userpass)){
str="success";
}else{
//生成业务消息;
FacesContext context = FacesContext.getCurrentInstance();
//根据客户端时区,动态选择装载资源文件;
ResourceBundle bundle = ResourceBundle.getBundle("test",context.getViewRoot().getLocale());
//根据键名读取消息内容;
String msg = bundle.getString("error.noequal");
String msg2 = bundle.getString("error.haha");
//生成消息对象,并存储到FacesContext中;
context.addMessage("error.noequal",new FacesMessage(msg));
context.addMessage("error.haha",new FacesMessage(msg2));
str = "fail";
}
}
最后提交的时候根据业务判断跳转的页面为success导航规则中显示成功登陆,而fail则是跳回本页面显示消息
import javax.faces.context.FacesContext;
import java.util.ResourceBundle;
import javax.faces.application.FacesMessage;
注意上面使用到的包
主要思路是通过Util包的ResourceBundle类对象先找到资源文件,然后获得facesContext上下文,并从资源文件中获取的消息存放在facesMessage对象中并保存在上下文中方便页面调用显示
三:JSF自定义验证、
1、 UIInput 标记提供了validator 属性
下面的是邮箱验证才是自定的,所用使用到了validator属性,指定了自定义的验证方法email
<f:view>
<h:form>
用户名:<h:inputText id="username" value="#{userform.username}" required="true"/>
<h:message for="username" style="color:red"/>
<br/>
邮箱:<h:inputText validator="#{userform.emailValidate}" id="email" value="#{userform.email}" required="true"/>
<h:message for="email" style="color:red"/>
<br/>
</h:form>
</f:view>
接下来就是对受管Bean进行上面的自定义方法的实现了直接为你的后台bean 添加一个验证方法。
public void emailValidate(FacesContext context,UIComponent component,Object value) throws ValidatorException{
String xemail = (String)value;
//判断Email 是否合法;
if(xemail.indexOf("@")<0){
throw new ValidatorException{
MessageFactory.getMessage(context,"error.email")
}
}
}
验证方法必须符合下面的原型特征:名字可以自定义,但参数及抛异常得必须的。只要不符合要求即生成一个异常即可
throw new ValidatorException(MessageFactory.
getMessage(context, “error.email"));此处的error.email 就是资源文件的键名
四:使用jsp内置对象
这里使用的内置对象一般是指request、session之类的
1. 例子:通过超链接传递参数(使用内置对象)
<f:view>
<h:form>
<h:commandLink value="分页显示" actionListener="#{userform.processpage}">
<f:param value="2" name="page"/>
</h:commandLink>
</h:form>
</f:view>
这里使用到的就像我们原来使用超链接xxx.jsp?id=2形式
而在这个受管Bean中写上刚才的监听方法
使用到的类为
import java.util.Map;
import javax.faces.context.FacesContext;
//接收超链接参数;
public void processpage(ActionEvent e){
Map map= FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap();
String page= (String)map.get("page");
System.out.println("page=" + page);
}
也可以使用以下方法去获取,因为那样更好理解
//接收超链接参数;
public void processpage(ActionEvent e){
HttpServletRequest request = (HttpServletRequest)FacesContext.getCurrentInstance().getExternalContext().getRequest();
String page= (String)request.getParameter("page");
System.out.println("page=" + page);
}
同样的想获取什么并且想存入什么值,只要通过FacesContext.getCurrenInstance().getExternalContext再点的方法都可以获取Servlet的常用对象进行进一步的操作:)
- 大小: 7.7 KB
- 大小: 12.4 KB
- 大小: 5 KB
分享到:
相关推荐
JSF标签 中文版 详解JSF标签!
各种jsf标签Java语言各种jsf标签Java语言各种jsf标签Java语言各种jsf标签Java语言
详细描述了JSF标签的用法,方便你快速使用JSF标签
JSF标签全解,JSF中的所有标签全部在这里了
JSF标签库
常用的 JSF标签库 常用的 JSF标签库
JSF 标签使用参考手册
北大青鸟-JSF标签.ppt北大青鸟-JSF标签.ppt 北大青鸟-JSF标签.ppt北大青鸟-JSF标签.ppt
jsf的帮助文档介绍,希望能够帮助到学习jsf的人!
jsfTag(JSF标签)jsfTag(JSF标签)jsfTag(JSF标签)jsfTag(JSF标签)
JSF标签库快速参考,二十字啊二十字,,有木有了啊!
JSF标签使用 前台与后台交换 单选与多选的选中值问题 下载下来放到myeclipse中部署运行即可
JSF的学习入门知识教程,里面有例子还有各个标签的使用及属性介绍
java JSF标签详解
JSF PDF 《JSF标签》简体中文版 JSF PDF 《JSF标签》简体中文版
JSF标签帮助文档(jsf编程)
这是一个JSF标签应用的实例。解压以后可以在tomcat5.x下部署运行。可以作为JSF开发的参考
JSF标签 输入标签 输出标签 命令标签 选择类标签 各个标签的demo
JSF标签全解释,PDF格式,不是那个垃圾的JSF标签,比那个要全!!!附加JSF配置
jsf标签总结和说明,以及和html标签的对应关系