I know this is an old one, and I know what the standard answer is, but the standard answer doesn't seem to apply in my situation here.

The standard explanation of this is that one is using, say, <html:text> outside of an enclosing <html:form>. What I have, though, is not simply that.

I have an html:form which uses a Tiles definition. Here's the calling form:

<tiles:insert definition="basicEditPage">
<tiles:put name="postAction" type="string" value="/location/postCountry.do"/>
<tiles:put name="fieldRows" type="string">
<tags:textFieldRow label="ID" property="id" size="5" readonly="true"/>
<tags:textFieldRow label="Country Name" property="name" size="40"/>
</tiles:put>
</tiles:insert>


The Tiles definition looks like this:

<tiles-definitions>
   <definition name="basicEditPage" path="/WEB-INF/jsp/editObject.jsp">
       <put name="postAction" value=""/>
       <put name="fieldRows" value=""/>
   </definition>
</tiles-definitions>

This is editObject.jsp:

<c:set var="postAction">
   <tiles:getAsString name="postAction"/>
</c:set>
<html:form action="${postAction}">
   <table width="500" border="0" cellpadding="4" cellspacing="0">
       <tiles:get name="fieldRows" ignore="false"/>
   </table>
</html:form>

The tags in the calling form are JSP 2.0 tags, defined in a tag file like this:

<%@ taglib prefix="html" uri="/WEB-INF/tld/struts-html.tld" %>
<%@ tag body-content="scriptless" %>
<%@ attribute name="label" required="true" %>
<%@ attribute name="property" required="true" %>
<%@ attribute name="size" required="false" %>
<%@ attribute name="readonly" required="false" %>
<%@ attribute name="maxlength" required="false" %>
<%@ attribute name="errorMessage" required="false" %>

<tr>
<td>${label}</td>
<td>
<html:text property="${property}" size="${size}" readonly="${readonly}" maxlength="${maxlength}"/>
</td>
</tr>


So, what is happening, or should be happening, is that the calling form should be ending up being populated with a number of <tr> elements containing <td> elements containing <html:text> tags. So, ultimately the <html:text> tags do appear within proper enclosing <html:form> tags.

The question is, then, is the problem occurring because the <html:form> tags are being evaluated at one of the earlier stages, as it were, before they end up nestling between the <html:form> tags? What puzzles me is that the problem only occurs when using Tiles to do the assembly of parts. That is, the following works fine, even though the <html:form> tags are within the tag file:

<html:form action="/location/postCountry.do">
<table width="500" border="0" cellpadding="4" cellspacing="0">
<tags:textFieldRow label="ID" property="id" size="5" readonly="true"/>
<tags:textFieldRow label="Country Name" property="name" size="40"/>
</table>
</html:form>


Could it be a question of scope?

I've run into a similar problem before and did not resolve it then but worked around it instead. I hope for more success this time.

JM

--
==============================================
John Moore  -  Norwich, UK  -  [EMAIL PROTECTED]
==============================================

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to