2009-01-15 59 views
3

我使用struts-html生成表单字段。Struts html html:text不会关闭input type =“text”标签

例如:

<%@ 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/> 

注:如果您使用的瓷砖,像我一样,直接使用您的包括JSP中。它不会从您的基本模板文件继承。

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

+0

您应该接受Phil Sacre的回答,而不是仅仅将它放在问题中。 – 2009-01-15 13:59:37

回答

6

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

使用的页面这个标签告诉所有其他html标记库标记来呈现自己作为XHTML 1.0

另外,您可以使用<html:html xhtml="true">

+0

``构建在我开发的网站上工作得很好。 (并且必须这样做,因为生成的标记是通过AJAX调用返回的,这会拒绝无效的XML) 您提供的所有其他示例都与我的相匹配。 您使用的是哪个版本的struts? – belugabob 2009-01-15 12:27:33

0

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

0

必须有支持实际代的Java代码。抓取库的来源,因为它已经开放源代码并检查代码是否在附加结束标记括号'>'时查看某些参数。如果完全没有这样做,您可以修改库,使用补丁版本并贡献补丁。

相关问题