首先感谢罗明提供的无私帮助,很多天来一直没有将OSGi的JSF应用问题解决,这两天跟罗明在网上聊关于这方面的话题,给予了我不少的帮助,同时也使我的问题得到了解决。
这些日子没有少在罗明的博客上晃悠,但总是让人感觉这个家伙总喜欢“高手过招,点到为止”,这样可能对于大多数对OSGi接触不多的人来说,可能还是有些抽象,为了方便大家学习和使用OSGi,我决定自己写一篇关于OSGi与JSF结合的例子,比较详细的介绍如何实现一个OSGi与JSF结合的例子。
在OSGi与JSF结合的使用中,由于需要改写一些由Equinox实现好的项目org.eclipse.equinox.jsp.jasper的一些源码,因此,操作起来似乎稍微要麻烦一些,Equinox上的项目基本上都是通过CVS来管理的,因此首先需要保证自己已经安装了CVS客户端,然后拉下代码,为下面的工作做好准备。
先就将OSGI与JSF的结合使用例表如下:
1. 建立plugin工程:osgi.jsf.finals
2. 编写页面
◆index.jsp
- <%@taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
- <%@taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
- <%@page contentType="text/html;charset=UTF-8"%>
- <html>
- <head>
- <title>JSF Samples</title>
- </head>
- <body>
- <f:view>
- <h:form>
- <h:outputText style="color:red" value="#{user.errMsg}" />
- <h3>JSF Samples</h3>
- Nick Name: <h:inputText value="#{user.id}"/><p>
- <h:commandButton value="Submit" action="#{user.verify}"/>
- </h:form>
- </f:view>
- </body>
- </html>
◆welcome.jsp
- <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
- <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
- <%@page contentType="text/html;charset=UTF-8"%>
- <html>
- <head>
- <title>JSF Samples</title>
- </head>
- <body>
- <f:view>
- <h:outputText value="#{user.id}"/> Welcome!
- <h3>JavaServer Faces!</h3>
- </f:view>
- </body>
- </html>
3. 实现相应类UserBean.java
- package org.danlley.jsf.beans;
- public class UserBean {
- private String id;
- private String pwd;
- private String errMsg;
- public String getId() {
- return id;
- }
- public void setId(String id) {
- this.id = id;
- }
- public String getErrMsg() {
- return errMsg;
- }
- public void setErrMsg(String errMsg) {
- this.errMsg = errMsg;
- }
- public String getPwd() {
- return pwd;
- }
- public void setPwd(String pwd) {
- this.pwd = pwd;
- }
- public String verify() {
- if (id.equals("jsfUser")) {
- return "success";
- } else {
- setErrMsg("userID should be jsfUser");
- return "failed";
- }
- }
- }
【编辑推荐】