您的位置:首页 > Web前端 > JavaScript

使用JSP显示Jena解析结果

2012-12-26 17:00 441 查看
从数据库中读取数据,使用JSP技术将本体信息可视化,最终效果图如下:



(1)使用html框架标签

(2)右侧的树形结构使用javascript中的dtree

(3)媒体信息有:图片、音频、视频。

核心代码如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" import= "com.ont.demo.*,java.util.*,java.sql.*"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<%
OntIndivDAO indiv_dao = new OntIndivDAO();
List<String> indiv_list = indiv_dao.findName();

OntClassDAO class_dao = new OntClassDAO();
List<OntClassDTO> class_list = class_dao.findAll();

int size = class_list.size();

%>
<html>
<head>
<title>显示本体实例</title>
<link rel="StyleSheet" href="dtree.css" type="text/css" />
<script type="text/javascript" src="dtree.js"></script>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<div class="dtree">
<p><a href="javascript: d.openAll();">全部打开</a> | <a href="javascript: d.closeAll();">全部关闭</a></p>
<script type="text/javascript">
<!--
d = new dTree('d');

//根节点
d.add(0,-1,'本体模型');
//第一层节点为类,第二层为实例

<%
//i标注节点,save[]数组保存树形结构上已显示的的节点名
int i = 1;
boolean marker = false;
String[] save = new String[size];
int s=0;
for(Iterator it = class_list.iterator();it.hasNext();){
OntClassDTO dto = (OntClassDTO)it.next();

if(dto.getC_Descript()==null){
//类的C_Descript字段为空,判断是否存入save数组,已存则不添加,否则添加

for(int j=0;j<save.length;j++){
if(save[j]!=null&&save[j].equals(dto.getC_Name()))
{
marker = true;
}
}
if(!marker){
%>
d.add(<%=i%>,0,'<%=dto.getC_Name()%>','class_detail.jsp?name=<%=java.net.URLEncoder.encode(dto.getC_Name(),"GB2312")%>','','show');

//类下添加实例
<%
int j =i ;
OntIndivDAO indiv_dao_1 = new OntIndivDAO();
List<String> indiv_list_1 = indiv_dao_1.findByClaURI(dto.getC_URI());
if(indiv_list_1.size()!=0){
for (Iterator it_1=indiv_list_1.iterator();it_1.hasNext();) {
String str=(String)it_1.next();
i++;
%>
d.add(<%=i%>,<%=j%>,'<%=str%>','detail.jsp?name=<%=java.net.URLEncoder.encode(str,"GB2312")%>','','show');
<%}}%>

<%
save[s] = dto.getC_Name();
marker = false;
s++;
i++;
}
}else{
//类的C_Descript字段不为空,判断C_DescriptVal字段是否存入save[]数组,未存则添加节点,否则不添加节点。
for(int j=0;j<save.length;j++){
if(save[j]!=null&&save[j].equals(dto.getC_DescriptVal()))
{
marker = true;
}
}
if(!marker){
%>
d.add(<%=i%>,'0','<%=dto.getC_DescriptVal()%>','class_detail.jsp?name=<%=java.net.URLEncoder.encode(dto.getC_DescriptVal(),"GB2312")%>','','show');
//类下添加实例
<%
int j =i ;
OntIndivDAO indiv_dao_2 = new OntIndivDAO();
List<String> indiv_list_2 = indiv_dao_2.findByClaURI(dto.getC_URI().substring(0,dto.getC_URI().indexOf("#"))+"#"+dto.getC_DescriptVal());
if(indiv_list_2.size()!=0){
for (Iterator it_2=indiv_list_2.iterator();it_2.hasNext();) {
String str=(String)it_2.next();
i++;
%>
d.add(<%=i%>,<%=j%>,'<%=str%>','detail.jsp?name=<%=java.net.URLEncoder.encode(str,"GB2312")%>','','show');
<%}}%>
<%
save[s] =dto.getC_DescriptVal();
i++;
s++;
}
%>
d.add(<%=i%>,'1','<%=dto.getC_Name()%>','class_detail.jsp?name=<%=java.net.URLEncoder.encode(dto.getC_Name(),"GB2312")%>','','show');
//类下添加实例
<%
int j =i ;
OntIndivDAO indiv_dao_3 = new OntIndivDAO();
List<String> indiv_list_3 = indiv_dao_3.findByClaURI(dto.getC_URI());
if(indiv_list_3.size()!=0){
for (Iterator it_3=indiv_list_3.iterator();it_3.hasNext();) {
String str=(String)it_3.next();
i++;
%>
d.add(<%=i%>,<%=j%>,'<%=str%>','detail.jsp?name=<%=java.net.URLEncoder.encode(str,"GB2312")%>','','show');
<%}}%>
<%
save[s] = dto.getC_Name();
marker = false;
s++;
i++;
}
}
%>
document.write(d);
//-->
</script>
</div>
</body>
</html>


仅作学习交流,转载请标注此文!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐