seam是什么,seam的意思
缝合框架本身基于联合打击战斗机和EJB3.0,所以联合打击战斗机和EJB3是必须要了解的内容,为了更好的使用联合打击战斗机还需要了解Facelets(JSF和JSP相关)。
联合打击战斗机的教程可以参考桑Shin(sang.shin@sun.com)的J2EE的教程
http://www.javapassion.com/j2ee/
EJB3和作业的装配区(JobPackArea)还可以参考这个教程:
http://www.javapassion.com/j2ee/
上面两个教程唯一的缺点是:是英文写的;但是也是优点,很原汁原味,不过过分偏重了孙(个人观点)。
Facelets可以参考美国国际商用机器公司上面的文章: 《Facelets 非常和是 JSF》
http://www.ibm.com/developerworks/cn/java/j-facelets/
开发工具,我喜欢使用想法,部署和构建依赖蚂蚁,现在还没有研究专家怎么使用接缝。
但是最好专家能支持接缝,做一个接缝启动器的专家插件,像支柱2的插件那样好用。
Facelets
Facelets配置
我们这里主要讲如何让使用Facelets功能的应用程序在JBoss-4.2.2GA中运行。
Facelets的版本为1.1.14
目录结构:
facelets-号码-猜测
guess.xhtml
index.jsp
response.xhtml
template.xhtml
WEB-INF
faces-config.xml
web.xml
classes
tutorial
NumberBean.class
lib
jsf-facelets.jar
解放运动库中的文件都是从C:/Seam/facelets-1.1.13/lib目录中拷贝而来的,这里需要注意一点,当如下文件:
el-api-1.0.jar
1.0 .罐子
jsf-api-1.2_04-p02.jar
servlet-api-2.4.jar
在WEB-INF/lib目录下时在服务器下无法正常运行,原因是服务器已经提供了这些应用程序接口的类库,一旦重复发现,JBoss无法加载这些类库而出错。
web.xml的内容为:
?可扩展标记语言版本=1.0 编码=UTF八号?
我们B- app xmlns= http://Java。星期日 com/XML/ns/javaee
xmlns:xsi= http://。w3。 org/2001/XML架构-实例
xsi:架构位置= http://Java。星期日com/XML/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd
版本=2.5
!-使用另存为*的文档. xhtml -
上下文参数
param-name javax面孔。默认后缀/参数名称
参数值XHTML/参数值
/content-参数
!-用于开发的特殊调试输出-
上下文参数
param-name facelets .开发/参数名称
参数值真/参数值
/content-参数
!-可选的JSF里参数有助于调试-
上下文参数
param-name com星期日面孔。验证XML/参数名称
参数值真/参数值
/content-参数
上下文参数
param-name com星期日面孔。验证对象/参数名称
参数值真/参数值
/content-参数
!- Faces Servlet -
小型应用程序
servlet名称面向Servlet /servlet名称
小型应用程序类javax。面孔。web应用程序。faces servlet/servlet类
启动时加载1/启动时加载
/servlet
!- Faces Servlet映射-
小型应用程序映射
servlet名称面向Servlet /servlet名称
全球资源定位器(Uniform Resource Locator)模式*。jsf /url模式
/servlet-映射
/网络应用
上述黑体部分的内容为facelets的配置,稍后说明用途。
faces-config.xml的内容为:
?可扩展标记语言版本=1.0 编码=UTF八号?
!DOCTYPE faces-config公共
-//太阳微系统公司公司//DTD Java server Faces配置1.0//EN
http://爪哇。星期日com/dtd/we b-faces config _ 1 _ 0。 dtd
faces-config
应用
视图处理程序
com。星期日facelets。faceletviewhandler
/视图处理程序
/应用程序
!-我们刚刚创建的数字豆-
受管豆
受管豆名称数字bean/受管豆名称
托管豆类教程100 .号码豆/受管豆类
受管豆范围会话/受管豆范围
托管财产
属性名最小值/属性名
值1/值
/托管属性
托管财产
属性名称最大值/属性名称
值10/值
/托管属性
/托管-豆子
!-从guess.xhtml到response.xhtml -
导航规则
from-view-id/guess。XHTML/from-view-id
导航箱
从结果成功/从结果
收件人-查看-id/回复。XHTML/to-view-id
/导航-案例
/导航规则
!-从response.xhtml到guess.xhtml -
导航规则
from-view-id/response。XHTML/from-view-id
导航箱
从结果成功/从结果
to-view-id/guess。XHTML/to-view-id
/导航-案例
/导航规则
/faces-config
上述黑体部分的内容为facelets的配置,上述两部分的配置内容结合在一起,可以得出如下结论:
单用户向服务器请求*.联合打击战斗机的内容的时候,会被Facelets框架解释为对*.可扩展超文本标记语言的处理,这是在这个解释的过程中完成了Facelets的功能。
Facelets的模板功能
Facelets的一个简单的功能是类似瓷砖的模板的功能,例如,我们有两个页面guess.xhtml和response.xhtml,我们需要使用共同的布局,那么我们可以设置一个共同的框架模板模板。可扩展超文本标记语言文件。
说明:xhtml文件为超文本标记语言文件的子集,必须满足可扩展标记语言的规范,是一个合式的可扩展标记语言文件
模板。可扩展超文本标记语言文件的内容为:
!DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Transitional//EN
http://www。w3。org/TR/XHTML 1/DTD/XHTML 1-过渡。 DTD
html xmlns= http://。w3。 org/1999/XHTML
xmlns:ui= http://Java。星期日 JSF/facelets
头
meta http-equiv= Content-Type Content= text/html;charset=iso-8859-1/
标题Facelets:数字猜测教程/标题
style type=text/css
!-
正文{
字体系列:凡尔登、阿里亚、Helvetica、无衬线;
字号:小;
}
-
/风格
/头
身体
氕
ui:insert name=title 默认标题/ui:插入
/h1
p
ui:insert name=body 默认正文/ui:插入
/p
/body
/html
其中内容的一些说明:
引入了facelets模板标签
定义了占位符,之后可以使用动态的内容替换。
guess.xhtml文件的内容
!DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Transitional//EN
http://www。w3。org/TR/XHTML 1/DTD/XHTML 1-过渡。 DTD
html xmlns= http://。w3。 org/1999/XHTML
xmlns:ui= http://Java。星期日 JSF/facelets
xmlns:h= http://Java。星期日 com/JSF/html
身体
上面的文本将不会显示。
用户界面:合成模板=/template.xhtml
将不显示此文本。
ui:define name=title
我在想一个从#{NumberBean.min}到#{NumberBean.max}的数字。你能猜出来吗?
/ui:定义
该文本也不会显示。
ui:define name=body
h:form id=helloForm
h:输入文本type= text id= userNo value= # { number bean。guess } validator= # { number bean。验证} /
br/
h:命令按钮type= Submit id= Submit action= success value= Submit /
br/
h:消息show summary= true show detail= false id=错误1
for=userNo/
/h:表单
/ui:定义
将不显示此文本。
/ui:合成
下面的文本也不会显示。
/body
/html
述的内容相信大家会很容易理解,xmlns部分引入了Facelets标签合联合打击战斗机的h类型的标签,用户界面:定义
name=title .部分和ui:define name=body .两部分定义了模板中的动态部分。
另外需要注意的是,黑体部分的内容不会作为输出。
response.xhtml文件内容:
!DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Transitional//EN http://www。w3。org/TR/XHTML 1/DTD/XHTML 1-过渡。 DTD
html xmlns= http://。w3。 org/1999/XHTML
xmlns:ui= http://Java。星期日 JSF/facelets
xmlns:h= http://Java。星期日 com/JSF/html
身体
用户界面:合成模板=/template.xhtml
ui:define name=title
#{NumberBean.message}
/ui:定义
ui:define name=body
form jsfc=h:form
input jsfc= h:command button type= submit id= Back value= Back action= success /
/表单
/ui:定义
/ui:合成
/body
/html
Facelets对模板的支持
Facelets可以使用超文本标记语言格式的标签处理联合打击战斗机标签,这样可以方便设计人员的设计,例如可以使用网页制作等工具设计,而在实行的时候按照联合打击战斗机标签的方式自动的处理数据绑定和事件绑定。
例如上述response.xhtml中的标签内容:
form jsfc=h:form
input jsfc= h:command button type= submit id= Back value= Back action= success /
/表单
上述代码在执行的时候会被翻译为如下的代码:
h:从哪里来
h:命令按钮type= submit id= Back value= Back action= success /
/h:来自
在上面的过程中,jsfc属性起到了标志的作用。
此外,facelets还支持一些JSTL标签。虽然不全面,但解决了JSF缺少标签的问题。Facelets支持的标签有:
c:如果/
c:forEach/
c:catch/
c:设置/
ForEach标签解决了JSF没有真正的循环标签的问题(dataTable不是真正的循环标签);
Facelets支持表达式语言(EL)
例如:
span您的购物篮有${basket.lineCount}件商品/span
转自:http://www.dojochina.com/? q=node/723
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。