JBoss Seam (POJO without EJB) 后台 + ExtJS 前台完整例子(三)
1.引言
通过本系列文章的
第一篇和
第二篇 ,你已经下载并安装了本项目,并且在Eclipse下建立了开发环境。
JBoss Seam采用JSF作为其Web框架。客户端采用ExtJS后,我们可以创建
OPOA(One Page One Application) 。在这样的应用中,典型情况下,只有两个页面, 一个是登录页面,另外一个就是登录后看到的主页面框架。用户点击菜单或链接后,完全通过JavaScript画出界面GUI元素。因此,对JSF的使用和依赖将减少到最低的程度。
本文介绍项目中所用到的一些与JSF相关的内容。
2. 从index.html开始
先来看 index.html 的内容:
xml 代码
- <html>
- <head>
- <meta http-equiv="Refresh" content="0; URL=app/home.seam">
- <!---->>
- <!---->>
“app/home.seam”有两方面的作用:
(1)后缀 .seam 类似 Struts 1.x 的 .do, 就是让后端Servlet首先处理该页面请求。
(2)路径 app/home 直接对应到了页面文件 /app/home.xhtml。
通过 web.xml 配置,实现了上述第一个功能:
xml 代码
- <servlet-mapping>
- <servlet-name>Faces Servlet<!---->>
- <url-pattern>*.seam<!---->>
- <!---->>
上述第二个功能正是使用 JSF 后,给我们带来的方便之处。
3. JSF 的“拉”模式
习惯了按Struts 1.x这样的传统MVC框架思维的开发人员(我就是其中一个),一开始有点难以理解
JSF。因为JSF 框架中,再也找不到C(控制器类)了。
在下面这篇文章中:
Seam - 无缝集成 JSF,第 1 部分: 为 JSF 量身定做的应用程序框架
对这一点有精彩的论述, 照录如下:
xml 代码
- 为了充分理解 Seam 为 JSF 带来了什么,就需要理解 JSF 与其他流行的基于 Web 的编程方法有何不同。
- JSF 是实现传统的Model-View-Controller (MVC) 架构的一种 Web 框架。不同之处在于,它采用该模式的一种特别丰富的实现。与 Model 2 或者 Struts、WebWork 和 Spring MVC 之类的框架中使用的“push-MVC” 方法相比,JSF 中的 MVC 实现更接近于传统的 GUI 应用程序。前面那些框架被归类为基于动作的(action-based),而 JSF 则属于基于组件模型 的新的框架家族中的一员。
- 如果将基于动作的框架想象为使用 “push”模型,而将组件框架想象为使用 “pull”模型,那么这种区别就很容易理解了。组件框架中的控制器不是预先处理页面请求(在基于动作的框架中控制器就是这么做的),而是在请求生命周期中作出让步,在视图中调用数据提供方法。此外,页面上的元素,即组件被绑定到事件,这些事件可以触发服务器端对象(激活后)的方法调用,从而导致重新显示相同的视图,或者转换到另一个页面。因此,组件框架也被归类为事件驱动的。组件框架抽象出用于事件通信的底层请求-响应协议。
把JSF框架想象成“拉”模式,而传统的MVC框架是“推”模式,就能让我们转变思维方式。先解析并显示
JSP/XHTML中的内容, 然后再根据需要访问服务器端的组件,这就是JSF的“拉”模式。
所以,在客户端URL中,首先访问的不是传统MVC的控制器类,而是直接引用JSP/XHTML页面文件。
4. 为何是 XHTML 而不是 JSP?
在本项目中,全部JSF页面文件采用 .xhtml 作为后缀。这是因为我们使用了Facelet。关于Facelet的详细
介绍,请参见下面的文章:
Facelets介绍
JBoss Seam 2.0 推荐使用Facelet。当然,你也可以使用JSP来作为JSF的页面文件格式。
阅读了上述文章,就可以基本看懂本项目所用的.xhtml文件中的内容。
5. 使用 Facelet 心得
使用 Facelet 过程中,遇到了下列2个问题,其中1个问题至今没有解决。
(1)整个 body 的内容必须包括在 f:view <f:view> 标签之中,否则运行Ext会出现下列 JavaScript 错误:
</f:view>
xml 代码
- An invalid or illegal string was specified" code: "12
(2)在FireFox下,JS文件中使用的中文全部变成了乱码,而IE 6正常。关于这个问题的详细描述,
请参见:
http://groups.google.com/group/jbossseam/browse_thread/thread/40337062f7199f5e
6. 结语
使用ExtJS作为客户端界面框架,使JSF在项目中的重要性大大降低。在下一篇文章中,将开始介绍项目中
与ExtJS相关的内容。
附:下面是本系列所有文章的完整列表:
(1)
下载示例项目并安装运行
(2)
建立Eclipse开发环境
(3)
熟悉项目中与JSF相关内容
(4)
重新认识JS
(5)
ExtJS之表单(Form)
(6)
ExtJS之布局(Layout)
(7)
ExtJS之网格(Grid)
(8)
Java后台和前台的通讯机制
(9)
Seam框架简化Java开发
(10)
分层架构设计
(11)
安全性
(12)
单元测试
分享到:
相关推荐
经典JAVA EE企业应用实战基于WEBLOGIC JBOSS的JSF+EJB 3+JPA整合开发——源码.part1 其他部分详见我的上传列表,全部分卷下载完成才能解压。 本书介绍了Java EE规范的三大主要规范JSF、EJB 3和JPA,其中JSF是Sun...
经典JAVA EE企业应用实战 基于WEBLOGIC JBOSS的JSF+EJB 3+JPA整合开发.part2
经典Java EE企业应用实战:基于WebLogic/JBoss的JSF+EJB 3+JPA整合开发 part3
经典Java EE企业应用实战:基于WebLogic/JBoss的JSF+EJB 3+JPA整合开发 part2
经典JAVA EE企业应用实战 基于WEBLOGIC JBOSS的JSF+EJB 3+JPA整合开发。第三部分。
经典JAVA EE企业应用实战 基于WEBLOGIC JBOSS的JSF+EJB 3+JPA整合开发个人认为是不错的书
经典JAVA EE企业应用实战 基于WEBLOGIC JBOSS的JSF+EJB 3+JPA整合开发。第二部分。
《经典Java EE企业应用实战:基于WebLogic/JBoss的JSF+EJB 3+JPA整合开发》介绍了Java EE规范的三大主要规范JSF、EJB 3和JPA,其中JSF是Sun公司提供的JSF RI;EJB 3部分则包含Session Bean、Message Driven Bean的...
经典JAVA EE企业应用实战基于WEBLOGIC JBOSS的JSF+EJB 3+JPA整合开发——源码第3章 其他部分详见我的上传列表 本书介绍了Java EE规范的三大主要规范JSF、EJB 3和JPA,其中JSF是Sun公司提供的JSF RI;EJB 3部分则包含...
经典JAVA EE企业应用实战基于WEBLOGIC JBOSS的JSF+EJB 3+JPA整合开发 PDF 书籍 本书介绍了Java EE规范的三大主要规范JSF、EJB 3和JPA,其中JSF是Sun公司提供的JSF RI;EJB 3部分则包含Session Bean、Message ...
经典Java EE企业应用实战:基于WebLogic/JBoss的JSF+EJB 3+JPA整合开发 part1
经典JAVA EE企业应用实战基于WEBLOGIC JBOSS的JSF+EJB 3+JPA整合开发——源码第10章 其他部分详见我的上传列表。 本书介绍了Java EE规范的三大主要规范JSF、EJB 3和JPA,其中JSF是Sun公司提供的JSF RI;EJB 3部分...
经典JAVA EE企业应用实战基于WEBLOGIC JBOSS的JSF+EJB 3+JPA整合开发——源码第二章 其他部分详见我的上传列表。 本书介绍了Java EE规范的三大主要规范JSF、EJB 3和JPA,其中JSF是Sun公司提供的JSF RI;EJB 3部分...
经典JAVA EE企业应用实战基于WEBLOGIC JBOSS的JSF+EJB 3+JPA整合开发——源码.part5 其他部分详见我的上传列表,全部分卷下载完成才能解压。 本书介绍了Java EE规范的三大主要规范JSF、EJB 3和JPA,其中JSF是Sun...
经典JAVA EE企业应用实战基于WEBLOGIC JBOSS的JSF+EJB 3+JPA整合开发——源码第14章 其他部分详见我的上传列表。 本书介绍了Java EE规范的三大主要规范JSF、EJB 3和JPA,其中JSF是Sun公司提供的JSF RI;EJB 3部分...
经典JAVA EE企业应用实战基于WEBLOGIC JBOSS的JSF+EJB 3+JPA整合开发——源码第9章 其他部分详见我的上传列表。 本书介绍了Java EE规范的三大主要规范JSF、EJB 3和JPA,其中JSF是Sun公司提供的JSF RI;EJB 3部分则...
经典JAVA EE企业应用实战基于WEBLOGIC JBOSS的JSF+EJB 3+JPA整合开发——源码.part2 其他部分详见我的上传列表,全部分卷下载完成才能解压。 本书介绍了Java EE规范的三大主要规范JSF、EJB 3和JPA,其中JSF是Sun公司...
经典JAVA EE企业应用实战基于WEBLOGIC JBOSS的JSF+EJB 3+JPA整合开发——源码.part3 其他部分详见我的上传列表,全部分卷下载完成才能解压。 本书介绍了Java EE规范的三大主要规范JSF、EJB 3和JPA,其中JSF是Sun公司...
经典JAVA EE企业应用实战基于WEBLOGIC JBOSS的JSF+EJB 3+JPA整合开发——源码.part4 其他部分详见我的上传列表,全部分卷下载完成才能解压。 本书介绍了Java EE规范的三大主要规范JSF、EJB 3和JPA,其中JSF是Sun...
经典JAVA EE企业应用实战基于WEBLOGIC JBOSS的JSF+EJB 3+JPA整合开发——源码第13章 其他部分详见我的上传列表。 本书介绍了Java EE规范的三大主要规范JSF、EJB 3和JPA,其中JSF是Sun公司提供的JSF RI;EJB 3部分...