使用JSP显示Jena解析结果

6 篇文章 0 订阅
2 篇文章 0 订阅

从数据库中读取数据,使用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>		


 仅作学习交流,转载请标注此文!

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值