struts-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "zhouyanming (JIRA)" <>
Subject [jira] [Commented] (WW-4166) Allow "class" attribute on Struts tags
Date Mon, 04 Aug 2014 11:36:13 GMT


zhouyanming commented on WW-4166:

cache will improve 100x performance, and I rewrited your code, please check it.
     * Checks if provided name is a valid tag's attribute
     * @param attrName String name of attribute
     * @return true if attribute with the same name was already defined
    public boolean isValidTagAttribute(String attrName) {
        return getStandardAttributes().contains(attrName);

     * If needed caches all methods annotated by given annotation to avoid further scans
    protected List<String> getStandardAttributes() {
        Class clz = getClass();
        List<String> standardAttributes = standardAttributesMap.get(clz);
        if (standardAttributes == null) {
            Collection<Method> methods = AnnotationUtils.getAnnotatedMethods(clz, StrutsTagAttribute.class);
            standardAttributes = new ArrayList<String>(methods.size());
            for(Method m : methods)
            standardAttributesMap.putIfAbsent(clz, standardAttributes);
        return standardAttributes;
    private static ConcurrentHashMap<Class, List<String>> standardAttributesMap
= new ConcurrentHashMap<Class, List<String>>();

> Allow "class" attribute on Struts tags
> --------------------------------------
>                 Key: WW-4166
>                 URL:
>             Project: Struts 2
>          Issue Type: Improvement
>          Components: Other
>            Reporter: Eric Lentz
>            Assignee: Lukasz Lenart
>            Priority: Trivial
>             Fix For: 2.3.18
> In building a JSP, and working on web related things outside of the Java environment,
there are lots of tags which all receive the "class" attribute. The Struts developer must
_remember_ to call the attribute cssClass instead. Typing muscle memory drives me to half
of the time typing "class" instead, which leads to HTML which reads, 'class="class java.util.HashMap"'
> Why not just allow "class" like the rest of the HTML world? Why do we need to be different?
I have a billion things to remember when web developing, this shouldn't be one of them.
> We don't even have to to deprecate or obsolete cssClass, just also allow "class"... please!

This message was sent by Atlassian JIRA

View raw message