原创作者: Cecily   阅读:1113次   评论:0条   更新时间:2011-05-26    

                 在近期试图以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()的依赖。继续学习中。

评论 共 0 条 请登录后发表评论

发表评论

您还没有登录,请您登录后再发表评论

文章信息

  • fins在2007-01-18创建
  • fins在2011-05-26更新
Global site tag (gtag.js) - Google Analytics