`
leaphong
  • 浏览: 7748 次
  • 性别: Icon_minigender_1
  • 来自: 广州
最近访客 更多访客>>
社区版块
存档分类
最新评论

Jboss-seam中如何自己定义一个组件

阅读更多

    在设计程序的时候遇到这样一个问题。如果你要删除一条数据的时候,当你点击删除的时候,先要求要弹出一个窗口,问你是否要删除,然后点击确定的时候才把之前的数据删除掉。如果点击取消,那么就取消删除。

    在richfaces等都找不到有这样功能的组建,所以就要自己来写一个有这样功能的组建呢。要自己写一个组建,可以分为3步。
    第一步:在WEB-INF中的web.xml文件中,加入


<context-param>
 	   <param-name>facelets.LIBRARIES</param-name>
 	   <param-value>/WEB-INF/myTag.module.xml</param-value>
</context-param>


    第二步:在WEB-INF目录下创建myTag.module.xml文件



<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE facelet-taglib PUBLIC
    "-//Sun Microsystems, Inc.//DTD Facelet Taglib 1.0//EN"
    "http://java.sun.com/dtd/facelet-taglib_1_0.dtd">
<facelet-taglib>
	<namespace>http://www.goldeninfo.net/myTag</namespace>
	<tag>
	    <tag-name>sureRemove</tag-name>
	    <source>../components/sureRemove.xhtml</source>
	</tag>
</facelet-taglib>


    需要注意的几点是:
    <namespace>http://www.goldeninfo.net/myTag</namespace>是你在页面上引用的路径,
    <tag-name>sureRemove</tag-name>是组建的名字,
    <source>../components/sureRemove.xhtml</source>是要引用的页面。

    第三步:创建sureRemove.xhtml模板

<ui:composition xmlns="http://www.w3.org/1999/xhtml"
	 xmlns:ui="http://java.sun.com/jsf/facelets"
	 xmlns:c="http://java.sun.com/jstl/core"
	 xmlns:h="http://java.sun.com/jsf/html"
	 xmlns:f="http://java.sun.com/jsf/core"
	 xmlns:rich="http://richfaces.org/rich"
	 xmlns:s="http://jboss.com/products/seam/taglib"
	 xmlns:a4j="http://richfaces.org/a4j">
<a4j:loadStyle src="/img/images/style.css" />
<c:if test="#{empty msg}">
	<c:set var="msg" value="确定要删除该信息吗??"/>
</c:if>
<c:if test="#{empty title}">
	<c:set var="title" value="删除对话框"/>
</c:if>
<c:if test="#{empty value}">
	<c:set var="value" value="删除"/>
</c:if>
<c:if test="#{empty rendered}">
	<c:set var="rendered" value="true"/>
</c:if>
<c:choose>
	<c:when test="#{type eq 'link'}" >
		<c:set var="link_rendered" value="#{rendered and true}"/>
	</c:when>
	<c:when test="#{type eq 'button'}" >
		<c:set var="button_rendered" value="#{rendered and true}"/>
	</c:when>
	<c:otherwise>
		<c:set var="link_rendered" value="#{rendered and true}"/>
	</c:otherwise>
</c:choose>
<a4j:commandLink value="#{value}" oncomplete="#{rich:component('delPanel')}.show()" rendered="#{link_rendered}"/>
<a4j:commandButton value="#{value}" oncomplete="#{rich:component('delPanel')}.show()" rendered="#{button_rendered}"/>
<rich:modalPanel id="delPanel" autosized="true" width="180" styleClass="mp1">
	<f:facet name="header">
		<h:outputText value="#{title}" />
	</f:facet>
	<f:facet name="controls">
		<h:panelGroup>
			<h:graphicImage value="/img/guanbi.gif" style="cursor: pointer" onclick="#{rich:component('delPanel')}.hide();"/>
		</h:panelGroup>
	</f:facet>
	<span class="mpMessage" />
	<a4j:region id="globalMPRegion3">
	<s:div id="globalMPInclude3" styleClass="modalPanelContent">
		<table width="100%">
		<tbody>
			<tr>
				<td colspan="2" align="center"><h:outputText value="#{msg}" /></td>
			</tr>
			<tr>
				<td align="center" width="50%">
					<a4j:commandButton value="确定" action="#{bean[action]}" oncomplete="#{rich:component('delPanel')}.hide();" reRender="#{reRender}" eventsQueue="queue">
						<ui:insert/>
					</a4j:commandButton>
				</td>
				<td align="center" width="50%">
					<a4j:commandButton value="取消" onclick="#{rich:component('delPanel')}.hide();return false;" eventsQueue="queue"/>
				</td>
			</tr>
		</tbody>
	</table>
	</s:div>
	</a4j:region>
</rich:modalPanel>
</ui:composition>


    在***.xhtml页面上,先用引入这个组件名
    xmlns:mt=http://www.goldeninfo.net/myTag
    ,在页面上这样调用
    <mt:sureRemove type="link" rendered="true" action="delete"
    bean="#{pages.HomePage}">
    其中bean是指那个组建名,action是方法名.
    type为组件的外形。如果type的值为link,那么组建的显示外形是和链接一样的形状,如果type的值为button,那么组建的现实外形是和按钮一样的形状。
  • 大小: 6.9 KB
  • 大小: 17.7 KB
分享到:
评论

相关推荐

    jboss-seam 注解

    在JBoss Seam框架中,`@Name`注解主要用于定义一个Seam组件。为了确保组件能够被正确识别与使用,每个Seam组件都必须拥有一个唯一的名称标识,即通过`@Name`来指定。例如: ```java @Name("componentName") public ...

    Jboss-Seam 2RC 中文翻译

    Seam为你的应用程序中... Seam组件可能是有状态的,包含与几个定义良好的上下文中任何一个相关联的状态, 包括长时间运行上下文、持久化上下文、业务流程上下文, 以及用户交互中能够跨多个Web请求保存的对话上下文。

    jboss-seam定时器

    在Seam中,定时器是一个非常有用的特性,允许开发者定义任务并在指定的时间点或间隔内自动执行。下面将详细解释如何在JBoss Seam中使用定时器以及相关的知识点。 1. **Seam定时器概念**: - Seam定时器基于Quartz...

    jboss-seam-2.1.1.GA.jar.zip

    综上所述,`jbosseam-2.1.1.GA.jar.zip`是一个包含JBoss Seam框架核心库的压缩文件,开发者可以通过解压并导入项目中来使用Seam的功能,结合JSF和JPA进行高效的企业级应用开发。这个特定版本的Seam已经在多个实际...

    java培训课程-JBOSS-SEAM开发.pptx

    SEAM是一个全面的Java EE框架,旨在简化开发过程,提高开发效率,同时提供了丰富的功能来处理复杂的业务逻辑和用户交互。 1. **为什么用SEAM**:SEAM在Java开发中扮演了重要的角色,因为它提供了许多优势。首先,它...

    jboss-seam2.0文档.rar

    JBoss Seam是一个全面的Java EE集成框架,特别设计用于简化企业级应用程序的开发。Seam 2.0是其一个重要版本,它在1.x的基础上进行了许多改进,旨在提供更高效、更灵活的开发体验。本文档集合将深入探讨Seam 2.0的...

    JBOSS SEAM组件中文手册

    3. **注入(Injection)**: Seam支持依赖注入,可以将一个组件的实例自动注入到其他组件中,无需手动创建对象或管理依赖关系。 4. **导航和流程控制(Navigation and Flow Control)**: Seam提供了强大的导航机制,...

    Seam项目源代码(基于JBoss和EJB3,JSF的项目源码)

    Seam项目源代码是一个基于JBoss应用服务器、JavaServer Faces (JSF)、Enterprise JavaBeans (EJB3) 的开源框架示例,旨在为初学者提供深入理解这些技术结合使用的实践经验。Seam是一个全面的Java EE开发框架,它简化...

    JBoss Seam 工作原理、seam和hibernate的范例、RESTFul的seam、seam-gen起步、seam组件、配置组件、jsf,jboss、标签、PDF、注解等等

    1.6. 一个完整的Seam 应用程序:宾馆预订范例............................................................................................................ 45 1.6.1. 介绍......................................

    Seam Framework 2.0 Reference中文版

    - **Seam 上下文**:介绍了 Seam 上下文的概念,它是 Seam 中的一个核心概念,用于管理应用程序的状态。 - **Statelesscontext(无状态上下文)**:不保存任何状态的上下文。 - **Eventcontext(事件上下文)**:...

    jbossas7_seamremoting_jpa_小例子

    1. 创建一个JPA实体类,该类对应数据库中的表,利用注解来定义字段与表列的映射。 2. 配置JPA的persistence.xml文件,指定数据库连接信息和使用的持久化单元。 3. 使用Hibernate的Session或EntityManager进行数据的...

    jboss seam 中文文档

    - **定义组件作用域**:通过配置文件或注解,可以指定组件的作用域,如会话作用域、请求作用域等。 - **具有多个角色的组件**:一个组件可以扮演不同的角色,这增加了组件的灵活性。 - **内置组件**:Seam 提供了一...

    jboss seam 2.01GA REF DOC

    JBoss Seam 是一个为简化企业级 Java 应用开发而设计的框架。它结合了 JavaServer Faces (JSF)、Java Persistence API (JPA) 和 Java Enterprise Edition (Java EE) 的优点,并通过提供一套高级抽象来增强这些技术的...

    JBoss Seam入门介绍

    Seam作为一个企业级Java Web应用框架,它将Java EE和JSF无缝集成,旨在填补Java EE 5.0中缺失的框架角色,并为JSR299: WebBeans奠定了基础。 ### 一、什么是JBoss Seam? JBoss Seam被定位为“企业Java应用程序...

    Jboss Seam中文版

    JBoss Seam是一个强大的企业级应用开发框架,基于Java EE标准,特别强调简化Web应用的开发流程。它通过整合多种技术如JSF、EJB 3.0等,提供了一种更为高效、简洁的方式来构建复杂的业务逻辑。Seam的目标是降低开发...

    jboss seam 教程

    - **Seam**:一个基于Java EE平台的应用框架,旨在简化企业级应用开发。 - **JBoss Seam**:由JBoss提供的Seam实现,提供了一系列功能强大的工具和服务,帮助开发者快速构建复杂的Web应用。 - **本教程**:主要介绍...

    Beginning JBoss Seam - From Novice to Professional

    - **项目初始化**:指导如何创建一个新的Seam项目,设置项目结构和依赖管理。 #### 3. 基础概念与编程模型 - **组件与转换器**:解释Seam中的组件体系结构,以及如何定义和使用转换器。 - **事件与拦截器**:介绍...

Global site tag (gtag.js) - Google Analytics