论坛首页 Java企业应用论坛

使用sitemesh显示ecside(eXtermeTable)初试

浏览 3548 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-01-18  

                 在近期试图以sitemesh来组织页面结构,整个页面的结构为:页面顶部可以安排公司标志及菜单(Header),左边是导航(Left),右边是主要的显示区域(Main),底部页角(Footer),除了主显示区其他部分大多数情况下都是静态的。在项目中,主显示区在很多情况下都要处于编辑,修改,查询,删除数据的状态,所以鉴于eXtremeTable在处理表格数据上的优势,就选择了使用eXtremeTable来实现Main这部分的功能。非常感谢ecside对eXtremeTable的进一步改进,就决定了使用ecside实现数据的增、删、改、查,因为作者明确声明未对ecside进行sitemesh的支持,所以知道需要做些调整,看了一下ecside的一些代码后,有了一个偷懒的做法。

                我稍微测试了一下,发现在sitemesh中,通过Filter进行显示的页面被加载的代码只是body内部的代码,所以产生的问题就是在外部的代码不会被包含,如写在head中的link、script等。在显示eXtermeTable时也是同样遇到这样的问题。但是sitemesh装饰器中的body还是会正常使用的,所以一个笨笨的方法就是在sitemesh装饰器中将eXtermeTable进行初始化,如:

  1. <%@ page contentType="text/html; charset=utf8" pageEncoding="GBK"%>  
  2. <%@ taglib uri="sitemesh-decorator" prefix="decorator" %>  
  3. <%@ taglib uri="sitemesh-page" prefix="page" %>  
  4.   
  5.   
  6. <html>  
  7.   <head>  
  8.     <META HTTP-EQUIV="content-type" CONTENT="text/html; charset=gbk"/>    
  9.     <title>  
  10.         <decorator:title default="装饰器页面..." />  
  11.     title>  
  12.     <decorator:head />  
  13.   head>  
  14.   <body onload="init();">  
  15.     <div style="position:absolute;top:0;left:0;width:1024;height:768;" align="center">  
  16.     <table border=0 cellpadding="0" cellspacing="0" width="778" align="center" id="marginSize">  
  17.         <!---->  
  18.         <tr>  
  19.             <td colspan="2" width=820>  
  20.                 <page:applyDecorator page="/jsp/Header.jsp" name="panel"/>  
  21.             td>  
  22.         tr>  
  23.         <!---->  
  24.         <tr>  
  25.             <td rowspan="2">  
  26.                 <page:applyDecorator page="/jsp/Left.jsp" name="panel"/>  
  27.             td>  
  28.             <td height="22">  
  29.                 <page:applyDecorator page="/jsp/Menu.jsp" name="panel"/>  
  30.             td>  
  31.         tr>  
  32.         <!---->  
  33.         <tr>  
  34.             <td height="478">  
  35.                 <decorator:body />  
  36.             td>  
  37.         tr>  
  38.         <!---->  
  39.         <tr>  
  40.             <td colspan="2">  
  41.                 <page:applyDecorator page="/jsp/Footer.jsp" name="panel"/>  
  42.             td>  
  43.   
  44.         tr>  
  45.            
  46.     table>  
  47.     div>  
  48.   body>  

            通过上面的方法到是可以正常的将eXtremeTable 显示出来,但是问题是如果要显示的页面中没有包含eXtremeTable 的话,在body中的脚本init(),还是会运行的,因而还是有很大问题的,希望大家能提供更好的实现方法,最好是能摆脱对body标签中init()的依赖。继续学习中。

论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics