在jspx中编码的简单div布局呈现不同

时间:2011-04-06 18:26:33

标签: javascript spring html tiles jspx

我一直在试图弄清楚我的布局在浏览器中渲染时发生了什么。

我的环境:

  • SpringSource工具套件版本:2.6.0.RELEASE
  • 瓦片
  • jspx + CSS
  • JavaScript InfoVis Toolkit

我的问题:

我必须从一个更大的项目中创建一个非常简单的部分,其中我有一个小的表单来进行选择,它触发服务器请求并获取一个json对象来绘制infovis工具包(javascript)中的spacetree,这是在表单下面绘制,然后在选择树的节点之后,它应该显示一个表,其中包含我通过Ajax请求获得的一些信息。所有这些复杂的编码都像魅力一样,问题来自于显示它。所以我想做这样的事情:

<div id="1>
   <form>
</div>
<div id="2">
   <div id="infovis"></div>
   <div id="log"></div>
</div>
<div id="2">
   <table id="someID"></table>
</div>

css包含一些格式,在纯HTML中工作得很好

但是在部署和渲染时,我得到了类似的东西:

<div id="1>
   <form>
</div>
<div id="2">
  <div id="infovis">
     <div id="log"></div>
     <div id="2">
        <table id="someID"></table>
     </div>
     <div id="footer"></div> //this is injected cause the tiles specification
  </div>     
</div>

此变体或任何其他变体。

是否有人有任何类似的问题或知道可能导致什么? spring,tiles,the script,jspx implementation?

我不能对其他代码或配置造成太大影响,因为我们处于非常高级的阶段而且我不想影响其他领域。

注意:我过去常常使用c / c ++和实时工作,所以我在CSS,jsp等方面不是很流利。我刚刚开始在真正的Web应用程序中工作。

3 个答案:

答案 0 :(得分:0)

好的,问题似乎是JSPX解析(甚至普通的jsp)

如果<div></div>内部没有“文本”,它会为所有</div>(以及可能还有其他标记)取出<div>,因为jspx需要以某种方式关闭</div>它会将遗漏的那些追加到最后

类似

<div id="1"></div>
<div id="2"></div>

转到:

<div id="1">
    <div id="2">

然后你在浏览器中得到的是:

<div id="1">
    <div id="2">
    </div>
</div>

要避免这种情况,您需要在<jsp:text></jsp:text>之后添加<div>,就像您在里面有文字一样,这样您就可以获得首先编码的内容。

好的,这就是我认为它的工作方式,也许我完全错了,但不知怎的,它对我有用,并且当它开始出现在系统的其他部分时会节省我们痛苦的时间。你知道其他任何解决方法吗?或者这种情况发生的真正原因是什么?

答案 1 :(得分:0)

jspx中不能有空块元素:

而不是:

<div id="log"></div>

尝试

<div id="log">&#160;</div>

答案 2 :(得分:0)

id属性应该具有唯一值(最好是数字和字母的组合)。 拥有id元素的唯一值可以解决您的问题。