`

JSF组件开发(实现简单的输出)

    博客分类:
  • J2EE
 
阅读更多

这是我们的项目的文件位置

 




 
 1、开发我们的JSF组件

      编写UIOutput类型的组件Java类

import java.io.IOException;

import javax.faces.component.UIOutput;
import javax.faces.context.FacesContext;
import javax.faces.context.ResponseWriter;

public class UIBolder extends UIOutput {
  
   
  public void encodeBegin (FacesContext context) throws IOException {
    // FIXME: Open the HTML tag for bold text
	  ResponseWriter writer = context.getResponseWriter();
	  writer.startElement("h2", this);

	  
  }

  public void encodeEnd (FacesContext context) throws IOException {
    // FIXME: Close the HTML tag for bold text
	  context.getResponseWriter().endElement("h2");
  }
}

 faces-config.xml中注册我们组件类

<?xml version="1.0" encoding="UTF-8"?>
<faces-config version="1.2" xmlns="http://java.sun.com/xml/ns/javaee"
	xmlns:xi="http://www.w3.org/2001/XInclude" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd">
	<!-- Custom components: FIXME: Register the new custom component -->
	<!-- View and data beans: -->
	<!-- 注册组件 -->
	<component>
		<component-type>bold</component-type>
		<component-class>training.UIBolder</component-class>
	</component>

	<!-- Navigation rules: -->
	<navigation-rule>
		<from-view-id>*</from-view-id>
		<navigation-case>
			<from-outcome>show</from-outcome>
			<to-view-id>/jsp/View.jsp</to-view-id>
		</navigation-case>
	</navigation-rule>
	<!-- Application configuration: -->
	<application>
		<locale-config>
			<default-locale>en</default-locale>
		</locale-config>
	</application>
</faces-config>

 2、开发自定义标签

   编写标签Java类

import javax.faces.webapp.UIComponentELTag;

public class BolderTag extends UIComponentELTag {

  @Override
  public String getComponentType () {
	  //返回faces-config.xml中组件的名字
    return "bold";
  }

  @Override
  public String getRendererType () {
    
    return null;
  }

}

 在bolder.tld文件中定义标签

<?xml version="1.0" encoding="UTF-8"?>
<taglib version="2.1" xmlns="http://java.sun.com/xml/ns/javaee"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd">
	<tlib-version>1.0</tlib-version>
	<short-name>bold</short-name>
       <!-- 定义页面使用的标签 -->         
       <uri>http://www.snailteam.org/</uri>
	<tag>
		<name>uibold</name>
		<tag-class>training.BolderTag</tag-class>
		<body-content>JSP</body-content>
	</tag>
</taglib>
 

3 、使用我们的自定义组件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC
  "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<%@ taglib uri="http://www.snailteam.com/"  prefix="d"%>


<html>

<head>
<title>Lab JSF Component</title>
<link rel="stylesheet" href="fred.css" type="text/css" />
</head>

<body>

	<f:view>

		<p>Fred says, show how to use custom component!</p>

		<h:form id="main">
			<h:panelGrid id="grid" columns="2">
				<f:verbatim>New component:</f:verbatim>
				<!-- FIXME: Use the new custom tag to display the following text in bold font -->
			   <!-- 使用tld中的tag name -->
			   <d:uibold>This my Bolder font</d:uibold>
			     
				<f:verbatim>JSF bold component</f:verbatim>
			</h:panelGrid>
		</h:form>

	</f:view>

</body>

</html>
  • 大小: 30.7 KB
分享到:
评论

相关推荐

    jsf 自定义组件开发

    **JSF自定义组件开发详解** JavaServer Faces (JSF) 是一个用于构建Web应用程序的Java框架,它提供了一种模型-视图-控制器(MVC)架构来简化开发过程。在JSF中,自定义组件是扩展其功能的关键部分,允许开发者根据...

    自定义 JSF 组件

    本章将深入探讨如何自定义JSF组件,并通过实例讲解开发过程。 首先,JSF组件模型借鉴了GUI组件模型的设计,具备事件处理和属性设置功能。组件的生命周期主要包括解码和编码两个主要阶段。解码是指将HTTP请求中的...

    JSF2.0实战 - 4、自定义组件

    JSF 2.0引入了复合组件的概念,它允许开发者将多个JSF组件和行为组合成一个单一的自定义组件。复合组件定义在独立的.xhtml文件中,可以包含属性、事件和嵌套组件。在使用时,只需引用这个.xhtml文件即可。 7. **...

    JSF创建自定义组件

    下面将详细解释如何创建一个自定义JSF组件,包括组件的组成部分、标签库描述、属性处理类和组件类的创建。 一、自定义组件组成 一个完整的自定义JSF组件通常包括以下几个部分: 1. **标签库描述文件(TLD)**:...

    JSF UI 组件详解

    大多数现代IDE(如Eclipse、NetBeans或IntelliJ IDEA)都内置了对JSF的支持,使得组件开发变得更加直观和简单。IDE通常会提供一个可视化的界面,其中包含各种JSF组件,只需通过简单的操作即可完成组件的添加和属性...

    如何使用JSF开发

    JSP标签库则使得在JSP页面中集成JSF组件变得更加便捷。 JSF的生命周期分为7个阶段,用于处理HTTP请求。这包括初始化、恢复视图、应用请求值、过程验证、更新模型值、调用应用业务逻辑以及呈现响应。这个生命周期...

    Ext组件转化成JSF

    在生成的JSF组件类中,通常会继承自`UIComponentBase`,如果是输出组件,那么直接继承自`UIOutput`。例如,对于Ext的Menu的Textitem,生成的JSF组件代码会包含配置项(config),但不包含Ext API中的方法和事件,确保...

    JSF包,jsf包,JSF包,jsf包

    **渲染器**:渲染器负责将JSF组件转化为实际的HTML或其他客户端可识别的格式。不同的渲染器可以根据目标环境(如浏览器类型)生成不同的输出。 **生命周期**:JSF有七个阶段,包括恢复视图、应用请求值、处理验证、...

    jsf最简单例子(源代码),初学者适合。

    1. **JSF组件模型**:JSF的核心是组件模型,允许开发者使用预定义的UI组件(如按钮、文本框等)来构建页面。这些组件可以通过XML(Facelets)进行声明式配置,或者在Java代码中进行编程式添加。 2. **Facelets**:...

    JSF全面学习教程.docx

    JSF的自定义组件机制使得开发人员可以根据需要创建自定义的JSF组件。这使得JSF组件更加灵活和可扩展。 JSF的国际化和本地化 JSF的国际化和本地化机制提供了一种国际化和本地化的解决方案,使得开发人员可以轻松地...

    jsf demo 各种实例

    **JSF组件库** 包括各种UI组件,如输入字段、按钮、表格等,这些组件可以直接在页面上使用,并且可以通过属性和绑定来控制它们的行为。JSF还支持自定义组件,允许开发者扩展其功能以满足特定需求。 **Eclipse 3.5**...

    jboss selectManyCheckbox jsf扩展

    在JavaServer Faces (JSF)框架中,`selectManyCheckbox`是用于创建...它可能涵盖了自定义渲染器的实现、JSF组件生命周期的理解以及相关的开发工具和技巧,对于想要深入理解和定制JSF组件的开发者来说是一份宝贵的资源。

    JSF基础教程 简体中文

     JSF 让您可以自订组件,每个组件都是可替换的,这使得组件在搭配时更有弹性,但相对的却使开发组件的过程复杂的多,这边对自订JSF 组件只是个入门砖,更多有关自订组件的细节可得要专书来说明。 JSF 生命周期与...

    《JSF入门》培训教程PPT

    `f:ajax`标签可用于添加Ajax行为到JSF组件,实现异步请求和局部刷新。 七、JSF与CDI集成 Java Contexts and Dependency Injection (CDI) 是Java EE中的一种依赖注入框架,JSF可以与其无缝集成,使得管理Managed ...

    用于eclipse开发用jsf框架

    Managed Bean可以被JSF组件直接引用,实现数据绑定。 - **控制器(Controller)**: JSF框架本身充当控制器角色,处理HTTP请求,更新模型,并根据需要更新视图。 2. **Eclipse中设置JSF支持** 在Eclipse中,你...

    JSF.rar_JSF

    2. **JSF组件**:详细讲解各种内置组件的使用,包括输入组件、输出组件、表单组件等。 3. **EL表达式(Expression Language)**:JSF中的EL用于在视图层和Managed Beans之间绑定数据,教程会解释其语法和使用方式。 ...

    MyEclipse下开发JSF

    - **数据绑定**:JSF 提供了简单的方式来绑定 UI 组件到后端数据模型,使得数据的传输和验证变得更为简单。 - **导航规则**:JSF 支持定义导航规则,根据用户的操作自动跳转到下一个页面或执行特定逻辑。 #### 二、...

    jsf开发详解--入门,文档

    JSF组件** JSF的核心是组件模型,它包含两个主要部分:UI组件(UIComponent)和渲染组件(Renderer)。UIComponent负责处理用户输入,而Renderer则负责将组件渲染为特定的输出格式,如HTML。例如,`h:inputText`是...

    Ajax4jsf 用户手册

    它将Ajax功能无缝集成到JSF组件生命周期中,提供Action和Value Change监听器,以及服务端验证和转化功能。 - **结构概览**:框架由一系列组件组成,它们协同工作以实现Ajax请求和响应处理。 - **如何发送AJAX请求*...

    JSF实现,里边有很多JSF工程用到的Jar包

    7. **Facelets**:Facelets是JSF推荐的视图定义语言,用于创建和组合组件,生成HTML输出。它们提供了模板和重用机制,使得界面设计更加灵活。 8. **Converters and Validators**:JSF提供了内置的转换器和验证器,...

Global site tag (gtag.js) - Google Analytics