[ 
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.

Reply via email to