总结一下使用Seam过程中遇到的一点问题:
1. 关于Seam自动生成的页面在IE6内显示错误的问题
搜索、编辑和表单显示的标题在IE6里面看不到,但是用鼠标拖拉相应的位置则会出现,而在Firefox中都正常,出现问题的组件有如下:
<rich:simpleTogglePanel style="width:100%" label="用户信息搜索条件" switchType="ajax">
.....
</rich:simpleTogglePanel>
<rich:panel style="width:600px">
<f:facet name="header" >用户详细信息</f:facet>
......
</rich:panel style="width:600px">
默认生成的JBoss代码没有style="width:600px"和style="width:100%"等样式属性,所以在IE6内显示有些问题,通过添加这个属性则给予了解决,同时在Firefox中的表现也是正常的。
2. 修改Seam生成的代码的默认CSS样式以便更好支持中文字体显示的问题。
由于默认的CSS样式对于汉字的显示非常不友好,所以我通过修改stylesheet/theme.css文件控制字体的颜色和大小,通常设置为{ font-size: 9pt; font-weight: normal;}的视觉效果较好,对于小字体最好不要使用粗体,否则在Firefox中的显示很别扭。另外,对于字体大小的指定最好以pt为单位,而不要使用像素,会影响不同机器上的显示效果。
经过一番努力,对生产的页面进行了汉化,汉字显示效果在IE6和Firefox中都一样了,感觉还行,坚定了使用Seam的信心。
以下提供一个修改后的theme.css文件,是Seam 2.1.1.GA + JBoss Tools 3.0.0CR1的环境:
html {
overflow-y: scroll;
}
body {
font-size: 9pt;
font-weight: normal;
margin: 0px;
}
a img {
border: none;
}
h1 {
font-size: medium;
margin-top: 0;
}
input[type=submit], input[type=button] {
font-size: 9pt;
font-weight: normal;
margin: 5px 5px 5px 0;
cursor: pointer;
}
input[type=text], input[type=password], textarea {
font-size: 9pt;
font-weight: normal;
padding-left: 1px;
}
.tableControl, .actionButtons {
width: 100%;
}
.tableControl a {
padding-left: 10px;
}
.tableControl {
text-align: right;
}
.footer {
text-align: center;
font-size: 9pt;
font-weight: normal;
margin-bottom: 10px;
}
.rich-table {
width: 100%;
}
.body {
padding: 30px;
}
.columnHeader:hover {
color: #FF6600;
}
.message {
padding: 5px;
list-style: none;
border: 0;
background: none;
padding: 0;
color: #000000;
margin: 5px 0 8px 0;
font-size: 9pt;
font-weight: normal;
}
.message li {
background: no-repeat left center;
padding-top: 1px;
padding-left: 20px;
margin-left: 3px;
}
.message li.infomsg {
background-image: url(../img/msginfo.png);
}
.message li.errormsg {
background-image: url(../img/msgerror.png);
}
.message li.warnmsg {
background-image: url(../img/msgwarn.png);
}
.name {
vertical-align: top;
font-size: 9pt;
font-weight: normal;
width: 115px;
float: left;
padding: 5px;
margin-top: 3px;
clear: left;
}
.value {
font-size: 9pt;
font-weight: normal;
}
.columnHeader {
font-size: 9pt;
font-weight: normal;
}
.value {
float: left;
padding: 5px;
}
.error {
float: left;
padding: 5px;
}
.errors {
color: red;
vertical-align: middle;
}
img.errors {
padding-right: 5px;
}
.errors input, .errors textarea {
border: 1px solid red !important;
}
.required {
color: red;
padding-left: 2px;
}
.rich-stglpanel-body {
overflow: auto;
}
/* the specificity here is necessary to override the defaults */
.rich-panel .rich-panel-header,
.rich-stglpanel .rich-stglpanel-header {
padding: 2px 3px;
font-size: 9pt;
font-weight: normal;
}
select {
font-size: 9pt;
font-weight: normal;
}
.rich-panel input[type=submit], .rich-panel input[type=button],
.rich-tabpanel input[type=submit], .rich-tabpanel input[type=button] {
margin-bottom: 0;
}
.tableControl input[type=submit], .tableControl input[type=button], .tableControl select {
margin: 5px 0 5px 5px;
}
/* I don't know why this is necessary, but the select is off by a pixel on the top and is padding too much on the left */
.tableControl select {
margin-left: 2px;
position: relative;
top: 1px;
}
.actionButtons {
padding-left: 1px;
}
.actionButtons select {
margin: 5px 5px 5px 0;
vertical-align: bottom;
}
.rich-datalist {
list-style: square;
margin: 6px 0 1px 0;
padding-left: 18px;
}
.rich-list-item {
padding-bottom: 4px;
}
div.info {
font-size: 9pt;
font-weight: normal;
}
ul.bullets {
list-style: square;
}
ul.bullets li {
padding-bottom: 2px;
}
.rich-table-cell {
font-size: 9pt;
font-weight: normal;
}
td.action {
font-size: 9pt;
font-weight: normal;
text-align: center;
width: 8em;
white-space: nowrap;
}
.rich-toolbar-item a {
font-size: 10pt;
font-weight: normal;
}
td.action a {
padding-left: 1px;
padding-right: 1px;
font-size: 10pt;
font-weight: normal;
}
另外,如果能够自定义一个Richfaces的皮肤插件,对于使用Seam会大有裨益,毕竟在代码里手工添加太多的样式代码也不好看嘛。
Richfaces + JSF是我目前最缺乏的知识了,不看具体的例子都不会用,而且对于如何和样式结合也不懂,要补课的地方很多啊。
分享到:
相关推荐
综上所述,《Seam 2.x Web Development》不仅是一本实用指南,更是学习Seam框架及构建现代Web应用程序不可或缺的参考资料。无论您是初学者还是有一定经验的开发者,都能从中获得宝贵的启示和帮助。
#### 三、Seam 2.x 的核心组件 - ** Seam Core**:提供基础框架服务,如生命周期管理、转换和验证等。 - **Seam UI**:增强 JSF 的功能,引入更高级的 UI 组件。 - **Seam Entities**:与 Hibernate 结合使用,提供...
#### 三、Seam 2.1 架构与组件 Seam 2.1 采用了模块化的设计理念,其核心组件包括但不限于: - **Seam Contextual Components**:这是 Seame 2.1 中的一个关键概念,用于管理和维护组件的状态,使得组件能够在不同...
### Seam 2.1 参考手册核心知识点详解 #### 一、Seam 2.1 GA 版本概述 Seam 2.1 GA版本是Seam框架的一个重要更新,该版本带来了许多新的特性和改进,使得Seam更加适合于现代的企业级应用开发。 #### 二、支持...
Seam 2.X Web Development
《JBoss Seam 2.1 用户手册中文版》是一本详细介绍如何使用JBoss Seam框架进行企业级应用开发的教程。该手册由“*工*”翻译,并由南山青牛整理成PDF格式,便于读者下载阅读。JavaEye社区提供了这本书的电子版自动...
Seam 2.1 安全模块框架是一个强大的工具,为使用 Seam 开发的应用程序提供了全面的安全管理和认证机制。框架的核心特性包括: 1. **安全验证**:Seam 提供了一个可扩展的安全验证层,基于 Java Authentication and ...
### 基于Seam2.1的最新力作《Seam Framework: Experience the Evolution of Java EE, 2nd Edition》全书知识点概览 #### 一、Seam框架简介 Seam框架是JBoss组织推出的一个开源项目,旨在简化企业级应用开发,通过...
Seam 是一种业级 企 Java 的应规用程序框架。它的灵感源自下列原 : 只有一种“工具” Seam为 应 业务业业 义 种统 组 你的 用程序中所有的 定 了一 一的 件模型。 Seam组件可能是 态义 关关 态 有状 的,包含与几...
### JBoss Seam 2.1版本开发参考知识点 #### 一、JBoss Seam 框架简介 **JBoss Seam** 是一个企业级Java Web应用框架,它简化了基于Java平台的应用程序开发过程。该框架提供了强大的上下文管理功能、会话管理、...
#Generated by seam setup #Mon Jun 08 21:07:28 CST 2009 #数据库密码 hibernate.connection.password=testSeamGen #工作目录 workspace.home=E\:/workspace_seam #实体存放路径 model.package=...
Seam Carving是一种图像处理技术,常用于图像缩放,特别是在保持重要视觉元素不变的情况下减小图像尺寸。这种技术的核心思想是找到一条低能量的“缝”,沿着这条缝删除或添加像素,从而改变图像的大小。在“Seam...
### 基于Seam2.1的最新力作《Seam Framework: Experience the Evolution of Java EE, 2nd Edition》摘要分析 #### 核心概念:Seam框架概述 Seam框架是一款革命性的Web应用开发框架,它将标准的Java EE技术与一系列...
源代码是学习和实践Seam Carving的宝贵资源,通过阅读和调试代码,可以更深入地理解算法的工作原理。 **5. 结论** Seam Carving技术以其内容自适应的特性,在图像和视频处理领域有着广泛的应用。尽管存在一些局限...
Seam - 语境相关的组件[满江红20071230]............................................................................................................................ 1 Java EE 框架...........................
jboss.seam.simplicity.and.power.beyond.java.ee2007
seam-978-1-8471-9592-0 Seam 2.x 网页开发
开发者可以通过研究这些内容,深入了解Seam的工作原理,学习如何在实际项目中应用Seam的各种特性。 总之,JBoss Seam 2作为一个强大的Java开发框架,极大地简化了企业级应用的开发流程,提高了开发效率。通过与JSF...
Practical.JBoss.Seam.Projects.pdf
Java培训课程-JBOSS-SEAM开发主要涵盖了Java企业级应用开发中的关键技术和框架,特别是JBOSS SEAM的应用。SEAM是一个全面的Java EE框架,旨在简化开发过程,提高开发效率,同时提供了丰富的功能来处理复杂的业务逻辑...