Unremitter 2011-08-28 21:22
浏览 212
已采纳

一个关于Freemark和servelet组合的问题?请知道的朋友帮忙一下~

[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)前设置是有效的.执行后设置是无效的..知道的朋友们帮忙回答下~~ 因为没分了.所以没办法给分.只能表示万分感谢了~~~

  • 写回答

15条回答

  • myali88 2011-08-29 10:17
    关注

    [code="java"]
    CharArrayWriter out = new CharArrayWriter(1000);
    //...
    resp.getWriter().write(out.toCharArray());
    resp.flushBuffer();
    [/code]
    这样不就可以把它写入到响应了吗!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(14条)

报告相同问题?

悬赏问题

  • ¥15 基于卷积神经网络的声纹识别
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 stm32开发clion时遇到的编译问题