Sure I could, but since the StringRequestTarget constructor takes a
content-type argument, I find it strange that this isn't sent to the
browser. Sure enough, StringRequestTarget#respond, creates as
StringBufferResourcesStream with the contentType field set correctly,
but then it just copies the stream, and doesn't set any headers.
Maybe this will work?
RequestCycle.get().setRequestTarget(new StringRequestTarget("text/html",
body) {
public void respond(RequestCycle requestCycle) {
requestCycle.getResponse().setContentType("text/html");
super.respond(requestCycle);
}
});
-- Edvin
richardwilko skrev:
You could implement your own dynamic web resource. eg for a kml page on our
site:
public class KMLResource extends DynamicWebResource
{
Document kml;
public KMLResource(Document kml)
{
this.kml = kml;
}
@Override
protected ResourceState getResourceState()
{
final XMLOutputter out = new XMLOutputter();
KMLResourceState kmlResourceState = new KMLResourceState();
try
{
ByteArrayOutputStream byteout = new
ByteArrayOutputStream();
out.output(kml, byteout);
kmlResourceState.setData(byteout.toByteArray());
byteout.close();
}
catch (IOException e)
{
e.printStackTrace();
}
return kmlResourceState;
}
class KMLResourceState extends ResourceState
{
@Override
public String getContentType()
{
return "application/vnd.google-earth.kml+xml";
}
private byte[] data = new byte[0];
@Override
public byte[] getData()
{
return data;
}
public void setData(byte[] data)
{
this.data = data;
}
@Override
public int getLength()
{
return data.length;
}
}
}
then use it like this in your page
final KMLResource kmlResource = new KMLResource(kml);
getRequestCycle().setRequestTarget(new IRequestTarget() {
public void detach(RequestCycle requestCycle) {
}
public void respond(RequestCycle requestCycle) {
ResourceStreamRequestTarget target = new
ResourceStreamRequestTarget(kmlResource.getResourceStream());
target.setFileName("name");
getRequestCycle().setRequestTarget(target);
}
});
just alter it for text rather than a Document
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]