Struts html html:text不会关闭input type =“text”标签

时间:2009-01-15 11:06:14

标签: struts struts-html

我使用struts-html生成表单字段。

例如:

<%@ taglib prefix="html" uri="/WEB-INF/taglibs/struts-html.tld" %>

<html:text property="email" styleId="email" size="44"/>

产生

<input type="text" name="email" size="44" value="" id="email"> 

如上所示,生成的输入标记未关闭。这导致我的html无效。

struts-html.tld包括:

<tlibversion>1.2</tlibversion>
<jspversion>1.1</jspversion>
<shortname>html</shortname>
<uri>http://struts.apache.org/tags-html</uri>

有谁知道为什么生成的输入没有关闭?有更新的版本吗?哪里可以下载?

我尝试使用:

<html:html xhtml="true">

呈现为:

<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US" xml:lang="en-US"> 

但是,我的输入标签会保持渲染不已闭合。


解决方案:

使用标签:

<html:xhtml/>

注意:如果你像我一样使用Tiles,请直接在你包含的jsp中使用它。它不是从您的基本模板文件继承的。

注意:在xhtml模式下,您无法在html:form标记内使用sytleId。这不是问题,因为会自动生成id属性来存储bean的名称。

3 个答案:

答案 0 :(得分:6)

你能不能只使用<html:xhtml/>

  

在页面中使用此标记会告诉所有其他html taglib标记将自己呈现为XHTML 1.0

或者您可以使用<html:html xhtml="true">

答案 1 :(得分:0)

input标签不必在HTML中关闭,因此我猜测Struts不知道您正在尝试生成XHTML。可悲的是,我的Struts-fu是如此古老,我不知道如何解决它。也许你应该回归HTML而不是XHTML;当您使用其他名称空间(例如SVG或MathML)时,XHTML才真正发挥作用。

答案 2 :(得分:0)

必须有支持Java代码才能完成实际生成。抓取库的源代码,因为它已经是开源的,并检查代码在附加结束标记括号“&gt;”时是否参考了一些参数。如果它根本不这样做,你可以修改库,使用修补版本并提供补丁。