我使用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的名称。
答案 0 :(得分:6)
答案 1 :(得分:0)
input
标签不必在HTML中关闭,因此我猜测Struts不知道您正在尝试生成XHTML。可悲的是,我的Struts-fu是如此古老,我不知道如何解决它。也许你应该回归HTML而不是XHTML;当您使用其他名称空间(例如SVG或MathML)时,XHTML才真正发挥作用。
答案 2 :(得分:0)
必须有支持Java代码才能完成实际生成。抓取库的源代码,因为它已经是开源的,并检查代码在附加结束标记括号“&gt;”时是否参考了一些参数。如果它根本不这样做,你可以修改库,使用修补版本并提供补丁。