Yanıt: Re: Adding to response header (filename )?

2007-10-06 Thread Ramazan Pekin
I dont know the subject, I didnt follow up, but this code is working.
   
  downloadLink = new Link("downloadFile"){
 private static final long serialVersionUID = 1L;
 public void onClick(){
  String tableCode = sourceCode;
  BufferedInputStream bis = null;
  BufferedOutputStream bos = null;
  try {
   String ContentType = "text";
   getResponse().setContentType(ContentType);
   ((WebResponse)getResponse()).setHeader("Content-Disposition","inline; 
filename=\""+fileName+".java\"");
   ByteArrayInputStream bais = new ByteArrayInputStream(tableCode.getBytes());
   bis = new BufferedInputStream(bais);
   bos=new BufferedOutputStream(getResponse().getOutputStream());
   byte[] buff=new byte[2048];
   int bytesread;
   while((bytesread=bis.read(buff,0,buff.length)) != -1) {
bos.write(buff,0,bytesread);
   }
   bos.flush();
  } catch (Exception e) {
   e.printStackTrace();
  } finally{
   try {
bos.close();bos=null;
bis.close();bis=null;
   } catch (Exception e) {

   }
  }
 }
};

Eelco Hillenius <[EMAIL PROTECTED]> wrote:
  On 10/6/07, Stanczak Group wrote:
> Well, I still don't see a way to get around this error. I'll have to
> live with it for now until I can look into it deeper. Has anyone else
> had this error?

But you shouldn't call respond yourself. That's for Wicket to do. The
only thing you should do is the the request target on the request
cycle.

Eelco

> Stanczak Group wrote:
> > Instead of "setRequestTarget(rsrt)" I use this
> > "rsrt.respond(getRequestCycle());", is that correct? It does work, but
> > I get this in the logs "08:53:03,277 ERROR WebResponse:190 - Unable to
> > redirect to: ?wicket:interface=:2, HTTP Response has already been
> > committed.". It works, but I wouldn't mind fixing that error, just to
> > keep things clean.
> >
> >
> > Johan Compagner wrote:
> >> or something like this:
> >>
> >> new Link()
> >> {
> >> onclick()
> >> {
> >> CharSequence discounts = DataBase.getInstance()
> >> .exportDiscounts();
> >>
> >>
> >> ResourceStreamRequestTarget rsrt = new ResourceStreamRequestTarget(new
> >> StringResourceStream(discounts, "text/csv"));
> >> rsrt.setFileName(name);
> >> setRequestTarget(rsrt)
> >> }
> >> }
> >>
> >> Maybe we should give ResourceStreanRequestTarget 1 extra constructor
> >> with
> >> the file name..
> >>
> >> setRequestTarget(new ResourceStreamRequestTarget(new
> >> StringResourceStream(discounts, "text/csv",name)))
> >>
> >>
> >> On 10/5/07, Eelco Hillenius wrote:
> >>
> >>> On 10/5/07, Eelco Hillenius wrote:
> >>>
>  What do you use for the export? You probably should use a resource.
>  For instance:
> 
>  public class DiscountsExport extends WebResource {
> 
>  public static class Initializer implements IInitializer {
> 
>  public void init(Application application) {
>  SharedResources res = application.getSharedResources();
>  res.add("discounts", new DiscountsExport());
>  }
>  }
> 
>  public DiscountsExport() {
> 
>  setCacheable(false);
>  }
> 
>  @Override
>  public IResourceStream getResourceStream() {
>  CharSequence discounts = DataBase.getInstance().exportDiscounts();
>  return new StringResourceStream(discounts, "text/plain");
>  }
> 
>  @Override
>  protected void setHeaders(WebResponse response) {
>  super.setHeaders(response);
>  response.setAttachmentHeader("discounts.csv");
>  }
>  }
> 
> >>> Sorry, this might be easier to understand:
> >>>
> >>> WebResource export = new WebResource() {
> >>>
> >>> @Override
> >>> public IResourceStream getResourceStream() {
> >>> CharSequence discounts = DataBase.getInstance()
> >>> .exportDiscounts();
> >>> return new StringResourceStream(discounts, "text/csv");
> >>> }
> >>>
> >>> @Override
> >>> protected void setHeaders(WebResponse response) {
> >>> super.setHeaders(response);
> >>> response.setAttachmentHeader("discounts.csv");
> >>> }
> >>> };
> >>> export.setCacheable(false);
> >>>
> >>> add(new ResourceLink("exportLink", export));
> >>>
> >>>
> >>> Eelco
> >>>
> >>> -
> >>> To unsubscribe, e-mail: [EMAIL PROTECTED]
> >>> For additional commands, e-mail: [EMAIL PROTECTED]
> >>>
> >>>
> >>>
> >>
> >>
> >
>
> --
> Justin Stanczak
> Stanczak Group
> 812-735-3600
>
> "All that is necessary for the triumph of evil is that good men do nothing."
> Edmund Burke
>
>
> -
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



   
-
Yahoo! kullaniyor musunuz?
Istenmeyen postadan biktiniz mi? Istenmeyen postadan en iyi korunma Yahoo! 
Posta'da
http://tr.mail.yahoo.com

Re: Yanıt: Re: Adding to response header (filename)?

2007-10-06 Thread Stanczak Group
That's what I used to use, but it gives the same error. Do you not get 
the error in the logs. The error doesn't stop it from working, but I 
still would like to do it correctly according to Wicket.


Ramazan Pekin wrote:

I dont know the subject, I didnt follow up, but this code is working.
   
  downloadLink = new Link("downloadFile"){

 private static final long serialVersionUID = 1L;
 public void onClick(){
  String tableCode = sourceCode;
  BufferedInputStream bis = null;
  BufferedOutputStream bos = null;
  try {
   String ContentType = "text";
   getResponse().setContentType(ContentType);
   ((WebResponse)getResponse()).setHeader("Content-Disposition","inline; 
filename=\""+fileName+".java\"");
   ByteArrayInputStream bais = new ByteArrayInputStream(tableCode.getBytes());
   bis = new BufferedInputStream(bais);
   bos=new BufferedOutputStream(getResponse().getOutputStream());
   byte[] buff=new byte[2048];
   int bytesread;
   while((bytesread=bis.read(buff,0,buff.length)) != -1) {
bos.write(buff,0,bytesread);
   }
   bos.flush();
  } catch (Exception e) {
   e.printStackTrace();
  } finally{
   try {
bos.close();bos=null;
bis.close();bis=null;
   } catch (Exception e) {

   }

  }
 }
};

Eelco Hillenius <[EMAIL PROTECTED]> wrote:
  On 10/6/07, Stanczak Group wrote:
  

Well, I still don't see a way to get around this error. I'll have to
live with it for now until I can look into it deeper. Has anyone else
had this error?



But you shouldn't call respond yourself. That's for Wicket to do. The
only thing you should do is the the request target on the request
cycle.

Eelco

  

Stanczak Group wrote:


Instead of "setRequestTarget(rsrt)" I use this
"rsrt.respond(getRequestCycle());", is that correct? It does work, but
I get this in the logs "08:53:03,277 ERROR WebResponse:190 - Unable to
redirect to: ?wicket:interface=:2, HTTP Response has already been
committed.". It works, but I wouldn't mind fixing that error, just to
keep things clean.


Johan Compagner wrote:
  

or something like this:

new Link()
{
onclick()
{
CharSequence discounts = DataBase.getInstance()
.exportDiscounts();


ResourceStreamRequestTarget rsrt = new ResourceStreamRequestTarget(new
StringResourceStream(discounts, "text/csv"));
rsrt.setFileName(name);
setRequestTarget(rsrt)
}
}

Maybe we should give ResourceStreanRequestTarget 1 extra constructor
with
the file name..

setRequestTarget(new ResourceStreamRequestTarget(new
StringResourceStream(discounts, "text/csv",name)))


On 10/5/07, Eelco Hillenius wrote:



On 10/5/07, Eelco Hillenius wrote:

  

What do you use for the export? You probably should use a resource.
For instance:

public class DiscountsExport extends WebResource {

public static class Initializer implements IInitializer {

public void init(Application application) {
SharedResources res = application.getSharedResources();
res.add("discounts", new DiscountsExport());
}
}

public DiscountsExport() {

setCacheable(false);
}

@Override
public IResourceStream getResourceStream() {
CharSequence discounts = DataBase.getInstance().exportDiscounts();
return new StringResourceStream(discounts, "text/plain");
}

@Override
protected void setHeaders(WebResponse response) {
super.setHeaders(response);
response.setAttachmentHeader("discounts.csv");
}
}



Sorry, this might be easier to understand:

WebResource export = new WebResource() {

@Override
public IResourceStream getResourceStream() {
CharSequence discounts = DataBase.getInstance()
.exportDiscounts();
return new StringResourceStream(discounts, "text/csv");
}

@Override
protected void setHeaders(WebResponse response) {
super.setHeaders(response);
response.setAttachmentHeader("discounts.csv");
}
};
export.setCacheable(false);

add(new ResourceLink("exportLink", export));


Eelco

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



  


--
Justin Stanczak
Stanczak Group
812-735-3600

"All that is necessary for the triumph of evil is that good men do nothing."
Edmund Burke


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]





-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



   
-

Yahoo! kullaniyor musunuz?
Istenmeyen postadan biktiniz mi? Istenmeyen postadan en iyi korunma Yahoo! 
Posta'da
http://tr.mail.yahoo.com
  


--
Justin Stanczak
Stanczak Group
812-735-3600

"All that is necessary for the triumph of evil is that good men do nothing."
Edmund Burke


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Yanıt: Re: Yanıt: Re: Adding to response header (filename)?

2007-10-06 Thread Ramazan Pekin
No, There is no error at logs. I have tried to do with wicket but I cant. So I 
have done with this way. This link is org.apache.wicket.markup.html.link.Link 
and in the org.apache.wicket.markup.html.panel.Panel. And the panel in the 
org.apache.wicket.markup.html.WebPage

Stanczak Group <[EMAIL PROTECTED]> wrote:
  That's what I used to use, but it gives the same error. Do you not get 
the error in the logs. The error doesn't stop it from working, but I 
still would like to do it correctly according to Wicket.

Ramazan Pekin wrote:
> I dont know the subject, I didnt follow up, but this code is working.
> 
> downloadLink = new Link("downloadFile"){
> private static final long serialVersionUID = 1L;
> public void onClick(){
> String tableCode = sourceCode;
> BufferedInputStream bis = null;
> BufferedOutputStream bos = null;
> try {
> String ContentType = "text";
> getResponse().setContentType(ContentType);
> ((WebResponse)getResponse()).setHeader("Content-Disposition","inline; 
> filename=\""+fileName+".java\"");
> ByteArrayInputStream bais = new ByteArrayInputStream(tableCode.getBytes());
> bis = new BufferedInputStream(bais);
> bos=new BufferedOutputStream(getResponse().getOutputStream());
> byte[] buff=new byte[2048];
> int bytesread;
> while((bytesread=bis.read(buff,0,buff.length)) != -1) {
> bos.write(buff,0,bytesread);
> }
> bos.flush();
> } catch (Exception e) {
> e.printStackTrace();
> } finally{
> try {
> bos.close();bos=null;
> bis.close();bis=null;
> } catch (Exception e) {
> 
> }
> }
> }
> };
>
> Eelco Hillenius wrote:
> On 10/6/07, Stanczak Group wrote:
> 
>> Well, I still don't see a way to get around this error. I'll have to
>> live with it for now until I can look into it deeper. Has anyone else
>> had this error?
>> 
>
> But you shouldn't call respond yourself. That's for Wicket to do. The
> only thing you should do is the the request target on the request
> cycle.
>
> Eelco
>
> 
>> Stanczak Group wrote:
>> 
>>> Instead of "setRequestTarget(rsrt)" I use this
>>> "rsrt.respond(getRequestCycle());", is that correct? It does work, but
>>> I get this in the logs "08:53:03,277 ERROR WebResponse:190 - Unable to
>>> redirect to: ?wicket:interface=:2, HTTP Response has already been
>>> committed.". It works, but I wouldn't mind fixing that error, just to
>>> keep things clean.
>>>
>>>
>>> Johan Compagner wrote:
>>> 
 or something like this:

 new Link()
 {
 onclick()
 {
 CharSequence discounts = DataBase.getInstance()
 .exportDiscounts();


 ResourceStreamRequestTarget rsrt = new ResourceStreamRequestTarget(new
 StringResourceStream(discounts, "text/csv"));
 rsrt.setFileName(name);
 setRequestTarget(rsrt)
 }
 }

 Maybe we should give ResourceStreanRequestTarget 1 extra constructor
 with
 the file name..

 setRequestTarget(new ResourceStreamRequestTarget(new
 StringResourceStream(discounts, "text/csv",name)))


 On 10/5/07, Eelco Hillenius wrote:

 
> On 10/5/07, Eelco Hillenius wrote:
>
> 
>> What do you use for the export? You probably should use a resource.
>> For instance:
>>
>> public class DiscountsExport extends WebResource {
>>
>> public static class Initializer implements IInitializer {
>>
>> public void init(Application application) {
>> SharedResources res = application.getSharedResources();
>> res.add("discounts", new DiscountsExport());
>> }
>> }
>>
>> public DiscountsExport() {
>>
>> setCacheable(false);
>> }
>>
>> @Override
>> public IResourceStream getResourceStream() {
>> CharSequence discounts = DataBase.getInstance().exportDiscounts();
>> return new StringResourceStream(discounts, "text/plain");
>> }
>>
>> @Override
>> protected void setHeaders(WebResponse response) {
>> super.setHeaders(response);
>> response.setAttachmentHeader("discounts.csv");
>> }
>> }
>>
>> 
> Sorry, this might be easier to understand:
>
> WebResource export = new WebResource() {
>
> @Override
> public IResourceStream getResourceStream() {
> CharSequence discounts = DataBase.getInstance()
> .exportDiscounts();
> return new StringResourceStream(discounts, "text/csv");
> }
>
> @Override
> protected void setHeaders(WebResponse response) {
> super.setHeaders(response);
> response.setAttachmentHeader("discounts.csv");
> }
> };
> export.setCacheable(false);
>
> add(new ResourceLink("exportLink", export));
>
>
> Eelco
>
> -
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
>
> 
 
>> --
>> Justin Stanczak
>> Stanczak Group
>> 812-735-3600
>>
>> "All that is necessary for the triumph of evil is that good men do nothing."
>>