I seem to have a problem with Tiles in Struts 1.2.4 while using
Tomcat 5.5.7 that did not exist when using 1.2.2/5.5.4. The 'get'
tag is not handling correctly the case where the named attribute
does not exist. The tag should throw an exception but does not.
Furthermore, it disregards the 'ignore' attribute.

  Example:

  layout.jsp

  <tiles:get name="nosuchvar" ignore="true">

  index.jsp

  <tiles:insert page="layout.jsp" flush="true">
    <tiles:put name="realvar" value="bodypage.jsp"/>
  </tiles:inset>

  The result should be no output. If I remove the ignore tag, it
should throw an exception. Currently in my setup, this returns
"The requested resource (/nosuchvar) is not available". The
'getAsString' tag behaves correctly.

  The problem seems to be coming from the
org.apache.struts.taglib.tiles.InsertTag class. This class gets
called by the 'get' tag (while the GetAttributeTag is called for
'getAsString'). In the processName() method, the call:
getCurrentContext().getAttribute(name) returns null because the
name 'nosuchvar' does not exist (see example above). However,
it continues on to call processAsDefinitionOrURL() where
'nosuchvar' acting as a relative URL.

  In the GetAttributeTag, a similar call to getAttribute(name)
is checked if the result is null. If so, it throws a JspException.

  Can anyone tell me if this is indeed a problem with the code,
or is there some problem with my setup? Has anyone else
encountered this problem with tiles?

  -john


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

Reply via email to