cargoj
2011-08-29 10:31
浏览 321
已采纳

struts2 action中返回InputStream的方法会被自动执行

ACTION中有一个返回INPUTSTREAM的方法
[code="java"]
public InputStream getInputStream() throws BeansException, Exception {
// System.out.println(contentDisposition);
// InputStream in =
// ServletActionContext.getResponse().getWriter().getResourceAsStream("");
// System.out.println(in.toString());
Document doc = DocumentHelper.createDocument();
doc.setXMLEncoding("utf-8");
Element root=doc.addElement("WuPing");
Element jiegou=root.addElement("JieGou");
//
return new ByteArrayInputStream(doc.asXML().getBytes());

}

[/code]

为什么执行其他方法每次都会调用到这个方法?

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

7条回答 默认 最新

  • rainbow702 2011-08-29 11:10
    已采纳

    [quote]改成PRIVATE就不会了[/quote]
    如果你还想把它写成 public 的,那建议你把它重命名一下。估计是反射的时候找向了你的这个方法。

    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • AngelAndAngel 2011-08-29 10:32

    你搜索一下本action或者父action 哪里调用了这个getInputStream方法。

    评论
    解决 无用
    打赏 举报
  • rainbow702 2011-08-29 10:35

    贴出你与这个方法有关的配置看看呢

    评论
    解决 无用
    打赏 举报
  • freishlove 2011-08-29 10:36

    应该是有某个地方调用了,把public改成private看看哪些地方调用了

    评论
    解决 无用
    打赏 举报
  • AngelAndAngel 2011-08-29 10:44

    肯定有哪个地方调用了的,100%的,lz小心的检查下罗哦。

    评论
    解决 无用
    打赏 举报
  • rainbow702 2011-08-29 10:57

    你可以查看一下哪些地方调用了你的这个 getInputStream() ,比如,有A B C三个方法,然后再去查看一下哪些地方调用了A B C 这几个方法,如此循环,肯定是有一个地方总是间接的一直调用了你的 getInputStream() 方法

    评论
    解决 无用
    打赏 举报
  • AngelAndAngel 2011-08-29 11:03

    [quote]不是某个地方误调用了,是任何其他操作都会错误的自动调用这个方法,改成PRIVATE就不会了,但是没有明白原因。 [/quote]
    你搜索一下方法名,估计是用反射调用的。直接用名字调用。

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题