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