集智数据平台jsf与报表集成使用

JSF(Java Server Faces)技术为开发基于网络用户界面的Java开发者提供了标准的编程接口API以及标签库。就像Struts框架一样,JSF定义了一套JSF标签,能够生成与JavaBean属性绑定在一起的HTML表单元素。从应用开发者的角度看,两种框架十分相似,但是JSF可能会得到更多的支持,因为JSFJava的标准。

现在有客户使用JSF框架时遇到了问题,需要我们搭建一个JSF的应用来测试一下。

1、在eclipse中新建一个Dynamic Web Project,在“project facets”页面中选中“JavaServer Faces 1.2”,在
“JSF Capabilities”
页面 new 一个JSF libraries,名称随便取,但是要把下载的jsf-1.2_04-b16-p02lib目录中的”jsf-api.jar””jsf-impl.jar”两个文件以及apache example目录中的”jstl.jar” “standard.jar” 添加进去。

(如果是MyEclipse,新建一个web project ,在项目名称单击右键–>MyEclipse–>And Jsf capabilities–>finish

2、新建一个JavaBean

package com.runqian;

public class UserBean {
private String name;

public void setName(String name) {
this.name = name;
}public String getName() {
return name;
}
}
将来发布的时候需要讲此class文件放在/WEB-INF/classes下。

3、新建页面jsp/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=GBk”%>
<html>
<head>
<title>
第一个JSF程序</title>
</head>
<body>
<f:view>
<h:form>
<h3>
请输入您的名称</h3>
名称: <h:inputText value=”#{user.name}”/><p>
<h:commandButton value=”
发送” action=”login”/>
</h:form>
</f:view>
</body>
</html>

4、新建页面jsp/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=Big5″%>
<html>
<head>
<title>
第一个JSF程序</title>
</head>
<body>
<f:view>
<h:outputText value=”#{user.name}”/>
您好!
<h3>
欢迎使用 JavaServer Faces</h3>
</f:view>
</body>
</html>

5、修改/WEB-INF/faces-config.xml文件。(可以使用Eclipse的图形界面来创建),最终内容为:

<?xml version=”1.0″?>
<!DOCTYPE faces-config PUBLIC
“-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.0//EN”
“http://java.sun.com/dtd/web-facesconfig_1_0.dtd”><faces-config>
<navigation-rule>
<from-view-id>/jsp/index.jsp</from-view-id>
<navigation-case>
<from-outcome>login</from-outcome>
<to-view-id>/jsp/welcome.jsp</to-view-id>
</navigation-case>
</navigation-rule><managed-bean>
<managed-bean-name>user</managed-bean-name>
<managed-bean-class>
com.runqian.UserBean
</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
</faces-config>

注:在<navigation-rule>中,我们定义了页面流程,当请求来自<from-view- id>中指定的页面,并且指定了<navigation-case>中的<from-outcome>login时,则会将请求导向至<to-view-id>所指定的頁面。 <managed-bean>中我们可以统一管理我们的Bean,我们设定Bean物件的存活范围是session,也就是使用者开启浏览器与程序互动过程中都存活。

6、发布。将有关文件拷贝至webapp目录下相应的子目录中。
文件结构如下:
/demo
/demo/jsp/index.jsp
/demo/WEB-INF
/demo/WEB-INF/web.xml
例如上面的設定,我只要用下面的url就可以連到我要的網頁了
http://localhost:8080/demo/jsp/index.faces

 将报表发布到这个应用中:

将报表应用的WEB-INF/lib里的jar包拷贝到jsf应用的WEB-INF/lib里。

授权文件拷贝到jsf应用的classes里。

reportConfig.xml放到jsfWEB-INF目录下。

将报表的WEB.xml <web-app>标签里的内容复制到Struts应用的web.xml里的 <web-app>标签中。

将引用报表的jsp和报表文件放到应用里。

本文标签: