package net.conselldemallorca.helium.webapp.mvc;
import java.io.ObjectOutputStream;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.view.AbstractView;
/**
* Vista per guardar un objecte serialitzat a dins un arxiu
*
* @author Limit Tecnologies <limit@limit.es>
*/
public class SerialitzarView extends AbstractView {
private static final String HEADER_PRAGMA = "Pragma";
private static final String HEADER_EXPIRES = "Expires";
private static final String HEADER_CACHE_CONTROL = "Cache-Control";
@SuppressWarnings({ "rawtypes", "unchecked" })
public void render(Map model, HttpServletRequest request, HttpServletResponse response) throws Exception {
response.setHeader(HEADER_PRAGMA, "");
response.setHeader(HEADER_EXPIRES, "");
response.setHeader(HEADER_CACHE_CONTROL, "");
String filename = (String)model.get("filename");
response.setHeader("Content-Disposition", "attachment; filename=\"" + filename + "\"");
super.render(model, request, response);
}
@SuppressWarnings("rawtypes")
@Override
protected void renderMergedOutputModel(
Map model,
HttpServletRequest request,
HttpServletResponse response) throws Exception {
ObjectOutputStream output = new ObjectOutputStream(response.getOutputStream());
Object objecte = model.get("data");
if (objecte != null)
output.writeObject(objecte);
output.close();
}
}