strutsstruts-html

Struts html html:text does not close input type="text" tags


I use struts-html to generate forms fields.

For example:

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

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

generates:

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

As shown above the generated input tag is not closed. This causes my html to be not valid.

struts-html.tld includes:

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

Does anyone knows why is the generated input not closed? Is there a newer version? Where can it be downloaded?

I tried using:

<html:html xhtml="true">

which renders as:

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

However, my input tags keep rendering unclosed.


Solution:

Use the tag:

<html:xhtml/>

Note: If you use Tiles, as I do, use it directly inside your included jsp. It is not inherited from your base template file.

Note: Within xhtml mode you can not use sytleId inside a html:form tag. It is not a problem since the id property is automatically generated to store your bean's name.


Solution

  • Can you not just use <html:xhtml/>?

    Using this tag in a page tells all other html taglib tags to render themselves as XHTML 1.0

    Alternatively you could use <html:html xhtml="true">.