[
https://issues.apache.org/jira/browse/VELTOOLS-88?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12538911
]
Christopher Schultz commented on VELTOOLS-88:
---------------------------------------------
Okay, I've made all those changes, and I think I fixed a bug along the way. The
existing implementation of getSelf() had this at the bottom:
if (this.selfParams)
{
dupe.params(request.getParameterMap());
}
return dupe;
Note that the parameters copied in the dupe.params() call will be entirely
lost, since dupe.params() returns a copy. The code is useless.
My new implementation properly does:
dupe = dupe.copyWith(params);
...which should result in the proper behavior.
Another odd thing I noticed in the class... the duplicate() method makes
arrangements for non-cloneable implementations of LinkTool, yet LinkTool itself
implements Cloneable. Why should we have to have any backup code in case
LinkTool suddenly isn't cloneable?
> LinkTool could easily be modified to support current-request parameter
> duplication
> ----------------------------------------------------------------------------------
>
> Key: VELTOOLS-88
> URL: https://issues.apache.org/jira/browse/VELTOOLS-88
> Project: Velocity Tools
> Issue Type: New Feature
> Reporter: Christopher Schultz
> Priority: Trivial
> Attachments: VELTOOLS-88.diff
>
>
> When implementing a pager a long time ago, I created a subclass of the
> StrutsLinkTool that added two methods: ignore(String paramName) and
> addAllParameters(). Together, they could be used to copy all the parameters
> from the current request into the link currently being built, and you could
> ignore a parameter from the current request using the ignore method.
> I hadn't seen any demand for such a feature out in the wild, so I kept it to
> myself.
> Now that I'm looking into Struts 2, I can see that their link builder tool
> has the same capability. Since that team decided to add this feature, I'm
> offering to add it to the LinkTool, which will provide the same capability to
> all subclasses such as StrutsLinkTool and SecureLinkTool.
> The change would not affect any existing code out in the wild: this would
> merely be a new method which supports the new feature. Its use is entirely
> optional and should not disturb any other code.
> The behavior of the Struts 2 link builder is to replace any current-request
> parameter explicitly set in the link builder, while my implementation
> requires that you explicitly ignore those parameters. My enhancement can
> follow either strategy (and I'd appreciate feedback on this item).
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]