`
folie2006
  • 浏览: 34420 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JSF标签

阅读更多


 使用下面的标签用法时要注意一点,只要在页面上显示的标签内容必须嵌套在


 <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标签概述 - **JSF (JavaServer Faces)** 是一种基于Java EE标准的框架,用于构建企业级的Web应用。它通过一套丰富的标签库简化了Web界面的开发过程。 - **JSF标签** ...

    各种jsf标签Java语言

    JSF标签、EL、Managed Beans、Facelets等概念共同构成了JSF的强大功能,使得开发者能够构建出高效、可维护的Web应用程序。通过对这些知识点的深入理解和实践,开发者可以更好地驾驭JavaServer Faces框架,提升Web...

    jsf标签使用文档

    ### JSF标签库详解 #### 一、JSF概述与标签使用 JavaServer Faces(简称JSF)是一种基于Java EE的标准技术,它主要用于构建企业级Web应用。JSF提供了丰富的功能,包括表单处理、验证、国际化等,并通过一套强大的...

    JSF 标签,前后台交换代码

    ### JSF标签 JSF标签是JSF组件的表现形式,它们在HTML页面中被解析并生成相应的HTML元素。例如: - **`&lt;h:dataTable&gt;`**:这是一个用于显示表格数据的JSF标签,可以绑定到后台的Java集合,动态渲染表格行和列。它...

    JSF标签全解

    ### JSF标签全解 #### 1. `f:actionListener` 标签 - **功能**:`f:actionListener` 标签主要用于为`h:commandLink`、`h:commandButton`等控件指定自定义的事件监听器。通过这种方式,可以实现更加灵活的事件处理...

    JSF标签帮助文档

    **JSF标签帮助文档** JavaServer Faces (JSF) 是一个用于构建Web应用程序的Java EE框架,它提供了组件模型和事件驱动的编程模型。在JSF中,UI组件通过使用XML标签来表示,这些标签极大地简化了用户界面的创建。本...

    JSF标签应用实例

    这个压缩包文件"myfaces-example-simple-1.1.7-SNAPSHOT"包含了一个JSF的实际应用示例,适合初学者和开发者了解JSF标签的使用方法和JSF应用的部署流程。 首先,我们要理解JSF的核心概念:组件、事件和渲染。JSF中的...

    JSF标签详解.docx

    在实际开发中,网页设计师需要理解JSF标签的用法,并与程序员协作确定Bean的名称绑定,以便正确地将数据展示在页面上。此外,标签的属性和事件处理机制也是关键,例如,`value`属性用于绑定组件的值,`action`属性...

    jsf标签官方帮助文档

    **JSF标签** 是JSF中的关键元素,它们是UI组件的表示,可以在JSP(JavaServer Pages)或其他支持JSF的视图技术中使用。这些标签定义了在用户界面上显示的内容和行为。例如,`&lt;h:outputText&gt;` 标签用于显示文本,而 `...

    JSF标签,JSF的使用

    本篇文章将深入探讨JSF标签及其使用方法。 首先,JSF由两大部分构成:API和JSP标签库。API提供了丰富的功能,如UI组件的表示、组件状态管理、事件处理、输入验证和国际化支持。而JSP标签库则让开发者可以在JSP页面...

    第6章 JSF标签 课件及示例程序

    本章主要聚焦于JSF中的一个重要组成部分——JSF标签,它是用来构建动态、交互式用户界面的组件。 JSF标签在HTML或XML文档中使用,类似于JSP标签,但它们提供了更高级的功能和灵活性。这些标签对应于JSF组件,这些...

    JSF标签》简体中文版

    **JSF PDF 《JSF标签》简体中文版** 是一本专门介绍JSF标签使用的指南,针对中文用户,可以帮助读者深入理解如何在JSF应用中有效地使用标签来构建用户界面。这本书可能会涵盖以下内容: 1. **JSF组件生命周期**:...

    《jsf标签》简体中文版

    在《jsf标签》简体中文版中,我们将会深入探讨JSF中的一个重要组成部分——JSF标签。 JSF标签是JSF框架中用于表示UI组件和行为的声明式元素,它们在HTML或XHTML视图中被使用,类似于JSP标签。JSF标签极大地简化了...

    JSF标签库快速参考

    在这个“JSF标签库快速参考”中,我们将深入探讨JSF标签库的主要组成部分,以及如何有效地使用它们。 首先,JSF标签库分为两大部分:核心标签库(Core Tags)和UI组件库(UI Components)。核心标签库提供了一些...

    学习技术 jsf必备 ————JSF标签.pdf

    ### 学习技术 JSF必备 —— JSF标签详解 #### 1. JSF标签概述 JavaServer Faces (JSF) 是一种用于构建基于组件的用户界面的Java Web框架。它提供了一组丰富的标签库,使得开发人员能够更加高效地创建动态网页应用...

    JSF+HTML标签总结

    JSF(JavaServer Faces)是Java平台上用于构建Web应用程序的一种技术。它提供了一种组件模型,使得开发人员可以通过声明式...在实际开发中,开发者应根据需求选择合适的JSF标签来构建UI,以实现数据的高效管理和展示。

    JSF标签库.ppt

    JSF标签库

    JSF标签库教程.ppt

    JSF 标签库教程 JSF(JavaServer Faces)是一种基于Java EE 的Web 应用程序框架,用于构建基于Web 的用户界面。JSF 提供了一组丰富的标签库,用于简化Web 应用程序的开发。下面是JSF 标签库教程的知识点总结: 一...

    JSF_TAG(JSF 标签)

    常用的 JSF标签库 常用的 JSF标签库

Global site tag (gtag.js) - Google Analytics