Greg Huber created WW-3920:
------------------------------

             Summary: AnchorHandler does not render onclick() correctly
                 Key: WW-3920
                 URL: https://issues.apache.org/jira/browse/WW-3920
             Project: Struts 2
          Issue Type: Bug
          Components: Plugin - Java Templates
    Affects Versions: 2.3.4.1
            Reporter: Greg Huber
            Priority: Minor


The sripting methods are ignored on the <a/> tag.

It never calls the start on ScriptingEventsHandler so does not add the 
attributes.  

Have checked it with image href links, which is what I think  was the reason it 
was done this way.

{code:java}
public class AnchorHandler extends AbstractTagHandler implements TagGenerator {
    public void generate() throws IOException {
        //all rendering must happend at the end of the tag, so we can support 
nested params

// Added start

        Map<String, Object> params = context.getParameters();

        Attributes attrs = new Attributes();

        attrs.addIfExists("name", params.get("name"))
                .addIfExists("id", params.get("id"))
                .addIfExists("class", params.get("cssClass"))
                .addIfExists("style", params.get("cssStyle"))
                .addIfExists("href", params.get("href"), false)
                .addIfExists("title", params.get("title"))
                .addIfExists("tabindex", params.get("tabindex"));
        start("a", attrs);

// added end

    }

    public static class CloseHandler extends AbstractTagHandler implements 
TagGenerator {
        public void generate() throws IOException {
            Map<String, Object> params = context.getParameters();

// Removed
            /*Attributes attrs = new Attributes();

            attrs.addIfExists("name", params.get("name"))
                    .addIfExists("id", params.get("id"))
                    .addIfExists("class", params.get("cssClass"))
                    .addIfExists("style", params.get("cssStyle"))
                    .addIfExists("href", params.get("href"), false)
                    .addIfExists("title", params.get("title"))
                    .addIfExists("tabindex", params.get("tabindex"));
            start("a", attrs);*/
// removed

            String body = (String) params.get("body");
            if (StringUtils.isNotEmpty(body))
                characters(body, false);
            end("a");
        }
    }
{code}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to