It works for me.

ResourceLink csvLink = new ResourceLink("csvLink", new
ResourceReference(AnnouncementCsvResource.ID), params);
add(csvLink);

public class AnnouncementCsvResource extends WebResource
{
    public static final String ID = "csv";
    @Override
    public IResourceStream getResourceStream()
    {
        return new CsvResourceStream();
    }

    @Override
    protected void setHeaders(WebResponse response)
    {
        super.setHeaders(response);
        response.setAttachmentHeader("announcements.csv");
        response.setHeader("Cache-Control", "no-cache");
    }

    private class CsvResourceStream extends AbstractStringResourceStream
    {
        @Override
        public String getContentType()
        {
            return "text/plain";
        }

        @Override
        protected Charset getCharset()
        {
            return Charset.forName("ISO-8859-1");
        }

        @Override
        protected String getString()
        {
            return "bla bla ";
        }
    }
}


On Tue, Jul 28, 2009 at 10:44 AM, ZedroS Schwart
<zedros.schwa...@gmail.com>wrote:

> Thanks for this answer Juri.
>
> I tried it (once again) and it didn't work : the setHeaders method
> isn't called...
>
> I use Live HTTP headers to check what goes through :
> http://localhost:8080/charts/data/dataId/KBU
>
>
>
> GET /charts/data/dataId/KBU HTTP/1.1
>
> Host: localhost:8080
>
> User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.11)
> Gecko/2009060308 Ubuntu/9.04 (jaunty) Firefox/3.0.11
>
> Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
>
> Accept-Language: en,de;q=0.5
>
> Accept-Encoding: gzip,deflate
>
> Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
>
> Keep-Alive: 300
>
> Connection: keep-alive
>
> Cookie: JSESSIONID=1gxaom5muzh66
>
>
>
> HTTP/1.x 200 OK
>
> Content-Type: text/csv; charset=UTF-8
>
> Content-Length: 5726
>
> Server: Jetty(6.1.16)
>
>
> thanks again
> zedros
>
> On Tue, Jul 28, 2009 at 8:59 AM, Juri Prokofiev<proj...@gmail.com> wrote:
> > To set headers to a resource you need to extend setHeaders method from
> > WebResource. Example:
> >    @Override
> >    protected void setHeaders(WebResponse response)
> >    {
> >        super.setHeaders(response);
> >        response.setAttachmentHeader("announcements.csv");
> >        response.setHeader("Cache-Control", "no-cache");
> >    }
> >
> > Check your headers. If Cache-Control is passed then resource should be
> > cached on user side.
> >
> > On Tue, Jul 28, 2009 at 1:02 AM, ZedroS Schwart
> > <zedros.schwa...@gmail.com>wrote:
> >
> >> hi
> >>
> >> We need to provide a flash application (www.amcharts.com if anyone is
> >> interested) with some content through some files.
> >>
> >> As the files are users specific (and determined with data from the
> >> session), we went for some page delivering the content like this :
> >>  public AMChartDataProviderPage(final PageParameters parameters)
> >>    {
> >>        Object object = parameters.get(DATA_KEY);
> >>        if ((object == null) || !(object instanceof String) ||
> >> "".equals(object))
> >>        {
> >>            throw new IllegalStateException("Expected parameter " +
> >> DATA_KEY + " not provided or empty");
> >>        }
> >>        String dataId = (String) object;
> >>        ByteArrayResource resourceStream;
> >>        try
> >>        {
> >>            resourceStream = new ByteArrayResource("text/csv",
> >> IOHelper.getResourceAsByteArray(dataId + ".csv"));
> >>        }
> >>        catch (IOException e)
> >>        {
> >>            throw ExceptionHelper.wrap(e);
> >>        }
> >>        getRequestCycle().setRequestTarget(new
> >> ResourceStreamRequestTarget(resourceStream.getResourceStream()));
> >>    }
> >>
> >> However, I don't manage to get this resource to be cached on the user
> >> browser side, despite the resource being cacheable. From what I've
> >> seen, setHeaders() in WebResource is never called... Neither did I
> >> manage to set them myself (on the page they're never called neither...
> >> and the request cycle has no webresponse on which to define the
> >> header).
> >>
> >> Any clue ?
> >>
> >> thanks in advance
> >> zedros
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> >> For additional commands, e-mail: users-h...@wicket.apache.org
> >>
> >>
> >
> >
> > --
> > http://www.autoladu.ee  - kõik varuosad ühes kohas
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> For additional commands, e-mail: users-h...@wicket.apache.org
>
>


-- 
http://www.autoladu.ee  - kõik varuosad ühes kohas

Reply via email to