集智数据平台jsf与报表集成使用
JSF(Java Server Faces)技术为开发基于网络用户界面的Java开发者提供了标准的编程接口API以及标签库。就像Struts框架一样,JSF定义了一套JSF标签,能够生成与JavaBean属性绑定在一起的HTML表单元素。从应用开发者的角度看,两种框架十分相似,但是JSF可能会得到更多的支持,因为JSF是Java的标准。
现在有客户使用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放到jsf的WEB-INF目录下。
将报表的WEB.xml里 <web-app>标签里的内容复制到Struts应用的web.xml里的 <web-app>标签中。
将引用报表的jsp和报表文件放到应用里。