[ 
https://issues.apache.org/jira/browse/WW-3441?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13966399#comment-13966399
 ] 

Lukasz Lenart commented on WW-3441:
-----------------------------------

I don't think it's a right solution, right now you can override each template 
file from simple theme and as you uncommon way to present Enum I'd suggest to 
override those templates as well instead introducing such change into framework.

> support list ui tag bind data by listValue beside by listKey
> ------------------------------------------------------------
>
>                 Key: WW-3441
>                 URL: https://issues.apache.org/jira/browse/WW-3441
>             Project: Struts 2
>          Issue Type: Improvement
>            Reporter: zhouyanming
>             Fix For: 2.5.x
>
>         Attachments: patch.txt
>
>
> list ui tag include select checkboxlist radio.
> typically we use a enum values as list for those tag
> {code:java}
> package biz.model;
> import com.opensymphony.xwork2.ActionContext;
> import com.opensymphony.xwork2.util.LocalizedTextUtil;
> public enum EmployeeType {
>       PACKER, DELIVERYMAN, WAREHOUSEMAN , SALESMAN, MANAGER, SERVANT;
>       public String getName() {
>               return name();
>       }
>       public String getDisplayName() {
>               return LocalizedTextUtil.findText(getClass(), name(), 
> ActionContext
>                               .getContext().getLocale(), name(), null);
>       }
>       public static EmployeeType parse(String name) {
>               if (name != null)
>                       for (EmployeeType en : values())
>                               if (name.equals(en.name()) || 
> name.equals(en.getDisplayName()))
>                                       return en;
>               return null;
>       }
>       @Override  //sometimes we need override toString() to display nicely
>       public String toString() {
>               return getDisplayName();
>       }
> }
> {code}
> {code:html}
> <@s.select name="employee.type" list="@biz.model.EmployeeType@values()" 
> listKey="name" listValue="displayName" headerKey="" headerValue=""/>
> {code}
> I override enum's toString use displayName replace name,so currently struts2 
> can't bind data as selected
> solution:
> tag.contains(parameters.nameValue, itemKey)  -->  
> tag.contains(parameters.nameValue, itemKey) || 
> tag.contains(parameters.nameValue, itemValue)



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to