之所以发生这种情况,是因为您直接在输出流中编写代码,然后返回一个struts结果,即您的JSP。您正在使用一个动作,就好像它是一个servlet,不是。
在Struts2中,要实现您的目标, 您需要使用 Stream结果类型,如以下答案所述
否则
,如果您想绕开框架机制并自己手动写入outputStream(在极少数情况下有用,例如下载动态创建的ZIP),那么
必须返回NONE
结果。
ActionSupport.NONE从Action类方法返回(或为null)会导致结果处理被跳过。如果该操作完全处理了结果处理(例如直接写入HttpServletResponse
OutputStream),则此方法很有用。
但是我强烈建议您使用Stream结果,这是标准方法。



