我一直在试图弄清楚我的布局在浏览器中渲染时发生了什么。
我的环境:
我的问题:
我必须从一个更大的项目中创建一个非常简单的部分,其中我有一个小的表单来进行选择,它触发服务器请求并获取一个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应用程序中工作。
答案 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"> </div>
答案 2 :(得分:0)
id属性应该具有唯一值(最好是数字和字母的组合)。 拥有id元素的唯一值可以解决您的问题。