add a single link to your page. expose its url as a variable to the
templating engine and append some sort of id to the url to
differentiate which template should be used. since you have to put the
link into markup put it inside an invisible div.

-igor

On Tue, Sep 13, 2011 at 8:37 AM, Alec Swan <alecs...@gmail.com> wrote:
> I don't think this will work because the template could be a method
> invocation, e.g.
>
> <a wicket:id="${var.getLinkToStudentReportWithColumns('First Name',
> 'Last Name')}">Download</a>
>
> Template-evaluation approach works great for generating HTML reports,
> i.e. the template evaluates to a string that contains raw HTML
> "<table>..</table>" and can be included on any page. So, here is what
> a page containing HTML report looks like:
>
> <div wicket:id="editableLabel">
>  ${var.studentReportWithColumnsHTML('First Name', 'Last Name')}
> </div>
>
> My code runs templating engine on the content of the editableLabel
> before rendering it.
>
> However, the new requirement is to expose the same reports for
> download as CSV files and I would like to continue using the
> templating mechanism and be able to support something like:
>
> <div wicket:id="editableLabel">
>  <a wicket:id="${var.getLinkToStudentReportWithColumns('First Name',
> 'Last Name')}">Download</a>
> </div>
>
> Thoughts?
>
> Thanks,
>
> Alec
>
> On Tue, Sep 13, 2011 at 1:00 AM, Sven Meier <s...@meiers.net> wrote:
>> Why don't you just use a component for this, e.g. DownloadLink?
>>
>> <a wicket:id="${var.wellKnownWicketId}">Download</a>
>>
>> No stable url involved.
>>
>> Sven
>>
>> On 09/13/2011 04:45 AM, Alec Swan wrote:
>>> Our templating engine is the one that needs to generate the link by
>>> evaluating a template similar to "<a
>>> href='${var.reportLink}'>Download</a>". The engine does not have
>>> access to any Wicket components but can access Thread local
>>> properties, such as RequestCycle.get(). I guess we could add a
>>> behavior to RequestCycle.get().getResponsePage().
>>>
>>> Is this what you are suggesting or there is a more elegant way to
>>> implement this in Wicket?
>>>
>>> Thanks,
>>>
>>> Alec
>>>
>>> On Mon, Sep 12, 2011 at 5:27 PM, Igor Vaynberg <igor.vaynb...@gmail.com> 
>>> wrote:
>>>> the problem is when you say "build a url to an instance of this
>>>> request target" wicket doesnt hold on to the instance, nor does it
>>>> have any way to recreate it.
>>>>
>>>> what you can do is add a behavior to the page and construct a url to
>>>> that behavior.
>>>>
>>>> -igor
>>>>
>>>>
>>>> On Mon, Sep 12, 2011 at 4:16 PM, Alec Swan <alecs...@gmail.com> wrote:
>>>>> I don't really need a stable URL. In fact, I would prefer if the link
>>>>> URL was session or page-specific so that it cannot be accessed by
>>>>> anybody unless they first accessed the page that contains the link.
>>>>>
>>>>> I would like to do something along the lines of the code in my
>>>>> original post. In other words, I would like to create a new
>>>>> RequestTarget and get its URL and display that URL to the user.
>>>>>
>>>>> Thanks,
>>>>>
>>>>> Alec
>>>>>
>>>>>
>>>>> On Mon, Sep 12, 2011 at 4:14 PM, Igor Vaynberg <igor.vaynb...@gmail.com> 
>>>>> wrote:
>>>>>> create a resource and register it in shared resources, this will allow
>>>>>> you to create a stable url. the filename and reportdata you will have
>>>>>> to pass on the url.
>>>>>>
>>>>>> -igor
>>>>>>
>>>>>> On Mon, Sep 12, 2011 at 2:25 PM, Alec Swan <alecs...@gmail.com> wrote:
>>>>>>> Hello,
>>>>>>>
>>>>>>> We use a templating engine which generates parts of our pages.
>>>>>>> Templates can be included on any page. We need the engine to be able
>>>>>>> to generate a link which will display a report when clicked. I tried
>>>>>>> using the following code, but it returns null from
>>>>>>> RequestTarget.urlFor(..):
>>>>>>>
>>>>>>> public String getReportLink() {
>>>>>>>        return "" + RequestCycle.get().urlFor(new
>>>>>>> DownloadCsvRequestTarget(fileName, reportData));
>>>>>>> }
>>>>>>>
>>>>>>> Where DownloadCsvRequestTarget implements respond() method to write
>>>>>>> reportData our in CSV format.
>>>>>>>
>>>>>>> Thanks,
>>>>>>>
>>>>>>> Alec
>>>>>>>
>>>>>>> ---------------------------------------------------------------------
>>>>>>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
>>>>>>> For additional commands, e-mail: users-h...@wicket.apache.org
>>>>>>>
>>>>>>>
>>>>>>
>>>>>> ---------------------------------------------------------------------
>>>>>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
>>>>>> For additional commands, e-mail: users-h...@wicket.apache.org
>>>>>>
>>>>>>
>>>>>
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
>>>>> For additional commands, e-mail: users-h...@wicket.apache.org
>>>>>
>>>>>
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
>>>> For additional commands, e-mail: users-h...@wicket.apache.org
>>>>
>>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
>>> For additional commands, e-mail: users-h...@wicket.apache.org
>>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
>> For additional commands, e-mail: users-h...@wicket.apache.org
>>
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> For additional commands, e-mail: users-h...@wicket.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org

Reply via email to