You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@struts.apache.org by "Don Brown (JIRA)" <ji...@apache.org> on 2008/06/13 01:58:05 UTC

[jira] Updated: (WW-1811) Add generic custom tag attributes to pass custom parameters into a tag

     [ https://issues.apache.org/struts/browse/WW-1811?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Don Brown updated WW-1811:
--------------------------

    Fix Version/s:     (was: 2.1.3)
                   2.2.x

> Add generic custom tag attributes to pass custom parameters into a tag
> ----------------------------------------------------------------------
>
>                 Key: WW-1811
>                 URL: https://issues.apache.org/struts/browse/WW-1811
>             Project: Struts 2
>          Issue Type: Improvement
>          Components: Plugin - Tags
>    Affects Versions: 2.0.6
>            Reporter: Jonathan Koppenhofer
>            Priority: Minor
>             Fix For: 2.2.x
>
>
> It would be nice to have a generic struts tag attribute for all tags to pass in custom parameters into the tag to use within custom templates.
> For example. I want to enable field level "mode" capabilites similar to what can be done in Struts-Layout (http://struts.application-servers.com) for struts 1.1-1.3. This includes the ability to specify a mode (Editable, ReadOnly. Hidden, etc...) for a field dependent on what mode (Create, Edit, Read) the page is in. An example struts-tag could be:
> <s:textfield key="firstName" somecustommodeattribute="E,E,I"/>
> In the example above "E,E,I" stands for... If page is in create mode the field is editable, if the field is in edit mode the field is ediatble, if the page is in read mode the field is readonly (inspect)
> I extended the simple text.ftl to be like:
> <#if parameters.somecustommodeattribute?exists>
>   <#assign modeKey = 0/>
>   <#if Session.pageMode?exists>
>     <#assign modeKey = Session.pageMode?int/>
>   </#if>
>   <#if Request.pageMode?exists>
>     <#assign modeKey = Request.pageMode?int/>
>   </#if>
>   <#assign fieldMode = parameters.somecustommodeattribute?substring(modeKey,modeKey+1)/>
> <#else>
>   <#assign fieldMode = "E"/>
> </#if>
> <#if !(fieldMode = "N") >
> 	<#if fieldMode = "E" >
> 		<input type="text"<#rt/>
> 		 name="${parameters.name?default("")?html}"<#rt/>
> 		<#if parameters.get("size")?exists>
> 		 size="${parameters.get("size")?html}"<#rt/>
> 		</#if>
> 		<#if parameters.maxlength?exists>
> 		 maxlength="${parameters.maxlength?html}"<#rt/>
> 		</#if>
> 		<#if parameters.nameValue?exists>
> 		 value="<@s.property value="parameters.nameValue"/>"<#rt/>
> 		</#if>
> 		<#if parameters.disabled?default(false)>
> 		 disabled="disabled"<#rt/>
> 		</#if>
> 		<#if parameters.readonly?default(false)>
> 		 readonly="readonly"<#rt/>
> 		</#if>
> 		<#if parameters.tabindex?exists>
> 		 tabindex="${parameters.tabindex?html}"<#rt/>
> 		</#if>
> 		<#if parameters.id?exists>
> 		 id="${parameters.id?html}"<#rt/>
> 		</#if>
> 		<#if parameters.cssClass?exists>
> 		 class="${parameters.cssClass?html}"<#rt/>
> 		</#if>
> 		<#if parameters.cssStyle?exists>
> 		 style="${parameters.cssStyle?html}"<#rt/>
> 		</#if>
> 		<#if parameters.title?exists>
> 		 title="${parameters.title?html}"<#rt/>
> 		</#if>
> 		<#include "/${parameters.templateDir}/simple/scripting-events.ftl" />
> 		<#include "/${parameters.templateDir}/simple/common-attributes.ftl" />
> 		/>
> 	<#else>
> 		<#include "/${parameters.templateDir}/simple/hidden.ftl" />
> 		<#if fieldMode = "I" >
> 			<@s.property value="parameters.nameValue"/>
> 		</#if>
> 	</#if>
> </#if>
> Now granted this is a very specific example, but it would just be nice to have a generic parameter that I can access in my ftl templates.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.