没有找到合适的产品?
联系客服协助选型:023-68661681
提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
原创|其它|编辑:郝浩|2009-04-01 09:34:07.000|阅读 1206 次
概述:Seam的中文意思就是“缝合线, 衔接口, 接缝”,所以大家可以将Seam当成一条能将EJB3、JSF等框架有机地结合起来的纽带。如下图所示。
# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>
上一篇文章,我介绍了通过JBoss Tools的向导生成一个简单的Seam工程。Seam的中文意思就是“缝合线, 衔接口, 接缝”,所以大家可以将Seam当成一条能将EJB3、JSF等框架有机地结合起来的纽带。如下图所示。
Facelets使用XHTML规范,省却了一大堆JSP的<f:verbatim />;
更强的性能;
Facelets还可以方便地创建自定义标签和EL函数。
所以Facelets成为Seam的不二之选。通过上面的讲述,我想大家应该了解Seam、JSF与Facelets的关系,故我介绍使用Facelets作为视图技术的JSF。
基本的XHTML构成
如果大家可以通过上一篇文章可以顺利创建Seam工程,可以在WebContent文件夹下看到一些XHTML文件。不过,这些XHTML都并不是独立的,需要依赖模板页面。下面让我们来看一个完整的XHTML:
<?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">
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
<title>
Hello World
</title>
</head>
<body>
<h1><h:outputText value="Hello World!" /></h1>
</body>
</html>
这个文件的构成很简单,与普通的XHTML区别就是引入了“http://java.sun.com/jsf/html”命名空间。这个URI正是 JSF常用的组件(Component,在JSF里的称呼,可以理解为JSP中的标签)的URI,<h:outputText />就是其中之一。
常用的JSF组件
常用的JSF组件可以分为以下几大类:表单输入组件、命令组件、输出组件、数据组件和辅助组件。
除了辅助组件之外,有些属性是组件共有的:
id属性,正如我前边所说“JSF的页面其实在内存中模型就是一棵树”,每个组件对应一个节点。每个节点都有一个唯一标识,这就是id属性。如果你没有显式地设置id,JSF会自动帮你生成一个。
binding属性,只能设置一个EL为值,它作用是可以将组件对应的对象绑定到后台的Managed Bean。当我们拿到这个对象后,我们可以通过JSF的API改变其行为。这个会在以后文章详细讲述。
rendered属性,用于指定该组件是否会被输出到页面中。
下面我分别对每类组件进行概述。
常用的表单输入组件
对于表单输入组件,都会有一个叫value的属性,通常被设置为一个EL表达式,如#{myBean.myProperty}。在JSF中有一个概念叫 双向绑定,即是在提交表单的时候,JSF通过EL将用户输入的值绑定到后台的Managed Bean中;同样地请求完成后渲染页面时,JSF亦会通过EL将Managed Bean的值输出相应的位置。
常用的表单输入组件有如下 :
h:inputText
h:inputSecret
h:inputTextarea
h:selectBooleanCheckbox
h:selectManyCheckbox
h:selectOneRadio
h:selectOneListbox
h:selectManyListbox
h:selectOneMenu
h:selectManyMenu
在这,我就不一一介绍这些组件的详细用法,大家可以找一下《Core JavaServer Faces, 2nd Edition》来看一下。
命令组件
JSF的命令组件有<h:commandButton />和<h:commandLink />,分别输出一个<input type="submit" />和<a />。它们都有两个属性action和actionListener,可以绑定到Managed Bean的事件处理方法。例如:
<h:commandButton action="#{myBean.myEvent}" value="Click Me" />
<h:commandButton actionListener="#{myBean.myActionListener}" value="Click Me" />
对应的JAVA代码:
public String myEvent() {
return null;
}
public void myActionListener(ActionEvent event) {
}
常用的输出组件
这些组件输出一些常用的HTML元素,如<span />、<a />、<div />和<table />等。其中最常用的应该是<h:outputText />、<h:panelGroup />和<h:panelGrip />。
h:panelGroup,当id、style和styleClass行属性不为空,且layout不为block时,它输出<span />。而当上述属性不为空,且layout为block时,它会输出<div />。不过,当上述属性为空时,它将什么也不输出。可能有的朋友会问,如果什么不输出,那要它何用?这个问题稍后再答。
h:panelGrid,输出<table />。它的用法有点奇怪,它有属性叫columns,默认为1。它将包含在其内的JSF组件,分别放到<td />元素输出。有时,我可能需要将两个或多个JSF组件放到同一个td中定位,就需要使用到h:panelGroup了。此时,我们不用 对<h:panelGroup/>设置任何属性。这就是上个问题的答案。<h:panelGroup />用于将两个或多个JSF组件当作一个使用,统一设置它们是否rendered等。例如:
<h:panelGrid columns="2">
<h:outputText value="1" />
<h:outputText value="2" />
<h:panelGroup>
<h:outputText value="3" />
<h:outputText value="-" />
<h:outputText value="4" />
</h:panelGroup>
<h:outputText value="5" />
</h:panelGrid>
的输出如下图所示:
常用的数据组件
JSF的数据组件有<h:dataTable />,它的使用相对比较简单,可以将绑定到集合类型。如
<h:dataTable value="#{myBean.myProps}" var="_prop">
<h:column>
<f:facet name="header">
<h:outputText value="Header" />
</f:facet>
<h:outputText value="#{_prop.myProp}" />
</h:column>
</h:dataTable>
常用的辅助组件
小结
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com
文章转载自:BlogJava面对“数字中国”建设和中国制造2025战略实施的机遇期,中车信息公司紧跟时代的步伐,以“集约化、专业化、标准化、精益化、一体化、平台化”为工作目标,大力推进信息服务、工业软件等核心产品及业务的发展。在慧都3D解决方案的实施下,清软英泰建成了多模型来源的综合轻量化显示平台、实现文件不失真的百倍压缩比、针对模型中的大模型文件,在展示平台上进行流畅展示,提升工作效率,优化了使用体验。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@evget.com
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢
慧都科技 版权所有 Copyright 2003-
2025 渝ICP备12000582号-13 渝公网安备
50010702500608号