[code="java"]Map root = new HashMap();
root.put("message", "Hello World!");
Template t = cfg.getTemplate("test.ftl");
System.out.println(t.getEncoding());//GBK编码
response.setContentType("text/html; charset=" + t.getEncoding());
Writer out = response.getWriter();
try {
t.process(root, out);
} catch (TemplateException e) {
throw new ServletException(
"Error while processing FreeMarker template", e);
} [/code]
这是http get或者post方法里面的内容.主要问题是try...catch..部分的问题.里面执行的是Template中的process方法.
执行这个方法可能会抛出异常.
问题:
抛出异常时无法设置response的状态码.返回的居然还是200状态码.而我请求端是根据状态码来处理的.出异常了还200的话.我会请求端会得到异常信息直接返回给用户.这样是不行的.请问下,抛出异常时改如何设置response的错误状态码呢??
执行t.process(root,out)前设置是有效的.执行后设置是无效的..知道的朋友们帮忙回答下~~ 因为没分了.所以没办法给分.只能表示万分感谢了~~~