使用下面的标签用法时要注意一点,只要在页面上显示的标签内容必须嵌套在
<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 (JavaServer Faces)** 是一种基于Java EE标准的框架,用于构建企业级的Web应用。它通过一套丰富的标签库简化了Web界面的开发过程。 - **JSF标签** ...
JSF标签、EL、Managed Beans、Facelets等概念共同构成了JSF的强大功能,使得开发者能够构建出高效、可维护的Web应用程序。通过对这些知识点的深入理解和实践,开发者可以更好地驾驭JavaServer Faces框架,提升Web...
### JSF标签库详解 #### 一、JSF概述与标签使用 JavaServer Faces(简称JSF)是一种基于Java EE的标准技术,它主要用于构建企业级Web应用。JSF提供了丰富的功能,包括表单处理、验证、国际化等,并通过一套强大的...
### JSF标签 JSF标签是JSF组件的表现形式,它们在HTML页面中被解析并生成相应的HTML元素。例如: - **`<h:dataTable>`**:这是一个用于显示表格数据的JSF标签,可以绑定到后台的Java集合,动态渲染表格行和列。它...
### JSF标签全解 #### 1. `f:actionListener` 标签 - **功能**:`f:actionListener` 标签主要用于为`h:commandLink`、`h:commandButton`等控件指定自定义的事件监听器。通过这种方式,可以实现更加灵活的事件处理...
**JSF标签帮助文档** JavaServer Faces (JSF) 是一个用于构建Web应用程序的Java EE框架,它提供了组件模型和事件驱动的编程模型。在JSF中,UI组件通过使用XML标签来表示,这些标签极大地简化了用户界面的创建。本...
这个压缩包文件"myfaces-example-simple-1.1.7-SNAPSHOT"包含了一个JSF的实际应用示例,适合初学者和开发者了解JSF标签的使用方法和JSF应用的部署流程。 首先,我们要理解JSF的核心概念:组件、事件和渲染。JSF中的...
在实际开发中,网页设计师需要理解JSF标签的用法,并与程序员协作确定Bean的名称绑定,以便正确地将数据展示在页面上。此外,标签的属性和事件处理机制也是关键,例如,`value`属性用于绑定组件的值,`action`属性...
**JSF标签** 是JSF中的关键元素,它们是UI组件的表示,可以在JSP(JavaServer Pages)或其他支持JSF的视图技术中使用。这些标签定义了在用户界面上显示的内容和行为。例如,`<h:outputText>` 标签用于显示文本,而 `...
本篇文章将深入探讨JSF标签及其使用方法。 首先,JSF由两大部分构成:API和JSP标签库。API提供了丰富的功能,如UI组件的表示、组件状态管理、事件处理、输入验证和国际化支持。而JSP标签库则让开发者可以在JSP页面...
本章主要聚焦于JSF中的一个重要组成部分——JSF标签,它是用来构建动态、交互式用户界面的组件。 JSF标签在HTML或XML文档中使用,类似于JSP标签,但它们提供了更高级的功能和灵活性。这些标签对应于JSF组件,这些...
**JSF PDF 《JSF标签》简体中文版** 是一本专门介绍JSF标签使用的指南,针对中文用户,可以帮助读者深入理解如何在JSF应用中有效地使用标签来构建用户界面。这本书可能会涵盖以下内容: 1. **JSF组件生命周期**:...
在《jsf标签》简体中文版中,我们将会深入探讨JSF中的一个重要组成部分——JSF标签。 JSF标签是JSF框架中用于表示UI组件和行为的声明式元素,它们在HTML或XHTML视图中被使用,类似于JSP标签。JSF标签极大地简化了...
在这个“JSF标签库快速参考”中,我们将深入探讨JSF标签库的主要组成部分,以及如何有效地使用它们。 首先,JSF标签库分为两大部分:核心标签库(Core Tags)和UI组件库(UI Components)。核心标签库提供了一些...
### 学习技术 JSF必备 —— JSF标签详解 #### 1. JSF标签概述 JavaServer Faces (JSF) 是一种用于构建基于组件的用户界面的Java Web框架。它提供了一组丰富的标签库,使得开发人员能够更加高效地创建动态网页应用...
JSF(JavaServer Faces)是Java平台上用于构建Web应用程序的一种技术。它提供了一种组件模型,使得开发人员可以通过声明式...在实际开发中,开发者应根据需求选择合适的JSF标签来构建UI,以实现数据的高效管理和展示。
JSF标签库
JSF 标签库教程 JSF(JavaServer Faces)是一种基于Java EE 的Web 应用程序框架,用于构建基于Web 的用户界面。JSF 提供了一组丰富的标签库,用于简化Web 应用程序的开发。下面是JSF 标签库教程的知识点总结: 一...
常用的 JSF标签库 常用的 JSF标签库