下载struts2生成的HTML

下载struts2生成的HTML,struts2,download,return-type,Struts2,Download,Return Type,我想知道是否有办法使用正常的结果类型从Struts2操作(处理jsp后的最终HTML)下载生成的HTML。我不想显示de页面,而是下载它 我所尝试的: <result name="success" type="stream"> <param name="location">/jsp/dummy.jsp</param> <param name="contentType">application/text</param>

我想知道是否有办法使用正常的结果类型从Struts2操作(处理jsp后的最终HTML)下载生成的HTML。我不想显示de页面,而是下载它

我所尝试的:

<result name="success" type="stream">
   <param name="location">/jsp/dummy.jsp</param>
   <param name="contentType">application/text</param>
   <param name="contentDisposition">attachment; filename="page.html"</param>
</result>
把它放到输入流中,因为我有一些编码问题。 任何想法都将受到赞赏。
谢谢大家。

我不知道这是否或如何实现

我能告诉你的是:

  • 此处不存在任何
    位置
    参数:它来自其他结果类型(DispatchResult、FreeMarker等),而不是来自。很好的尝试,但我很确定Struts2结果类型中没有任何现成的适合您的需求

  • 您不能使用
    拦截器的PreResultListener
    功能,因为它对最终结果有效,但在渲染之前,然后完全跳出拦截器

    我的2美分:

    如果您想进行调试,而不是以编程方式,那么真正的问题是您不能使用
    查看源代码
    浏览器的功能,因为结果已经被浏览器解析“污染”,那么您可以尝试使用(未经测试,这只是一个想法,我从未使用过它),要获取JSP的原始内容,请最终设置
    字符集
    ,然后使用适当的编辑器(Eclipse、Notepad++等)读取原始JSP


我不知道这是否或如何实现

我能告诉你的是:

  • 此处不存在任何
    位置
    参数:它来自其他结果类型(DispatchResult、FreeMarker等),而不是来自。很好的尝试,但我很确定Struts2结果类型中没有任何现成的适合您的需求

  • 您不能使用
    拦截器的PreResultListener
    功能,因为它对最终结果有效,但在渲染之前,然后完全跳出拦截器

    我的2美分:

    如果您想进行调试,而不是以编程方式,那么真正的问题是您不能使用
    查看源代码
    浏览器的功能,因为结果已经被浏览器解析“污染”,那么您可以尝试使用(未经测试,这只是一个想法,我从未使用过它),要获取JSP的原始内容,请最终设置
    字符集
    ,然后使用适当的编辑器(Eclipse、Notepad++等)读取原始JSP



返回响应的处理主要取决于HTTP头以及浏览器如何解释它们。因此,据我所知,您可以使用标准的dispatcher结果类型和JSP。您可以使用JSP指令设置适当的HTTP头,使浏览器以您喜欢的任何方式处理响应负载

返回响应的处理主要取决于HTTP头以及浏览器如何解释它们。因此,据我所知,您可以使用标准的dispatcher结果类型和JSP。您可以使用JSP指令设置适当的HTTP头,使浏览器以您喜欢的任何方式处理响应负载

为什么您要从浏览器中查看,因为您已经可以查看源代码了?在任何情况下,都不能使用默认结果类型。您可以始终使用普通筛选器来更改mime类型。难道您不能使用标准的dispatcher结果类型并使用JSP指令适当地设置HTTP头吗?@DaveNewton我的代码用于从多个表生成jqgrid列表。它们是使用反射生成的,以适应Bean属性名称和类型。我希望用户能够下载每个表的HTML,并在需要时使用它。@chad将尝试使用该方法。希望struts不会妨碍您。@德语struts不会妨碍您;浏览器很可能会给您带来一些麻烦。为什么您希望从浏览器中获得这些,因为您已经可以查看源代码了?在任何情况下,都不能使用默认结果类型。您可以始终使用普通筛选器来更改mime类型。难道您不能使用标准的dispatcher结果类型并使用JSP指令适当地设置HTTP头吗?@DaveNewton我的代码用于从多个表生成jqgrid列表。它们是使用反射生成的,以适应Bean属性名称和类型。我希望用户能够下载每个表的HTML,并在需要时使用它。@chad将尝试使用该方法。希望struts不会妨碍您。@德语struts不会妨碍您;浏览器很可能会给您带来一些麻烦。纯文本结果返回未解析的JSP/etc。查看源代码与查看DOM不同,例如,如果打开web developer标记,它不在源代码中,但在打开inspector时在DOM中。谢谢,这是真正的原始结果:)纯文本结果返回未解析的JSP/等。查看源代码与查看DOM不同,例如,如果打开web developer标记,它不在源代码中,但在打开inspector时在DOM中。谢谢,这是真正的原始结果:)嗯,最后我在操作中实现了
ServletResponseAware
,并添加了行
response.setHeader(“内容处置”、“附件;文件名=“+bean+”.jsp”)以避免修改jsp。struts.xml仍然很简单
/jsp/page.jsp
非常感谢大家的帮助@chad@DaveNewtonNo short。出于好奇,为什么要将头配置保留在jsp之外?我使用jsp进行显示和下载,因此我有两个不同的操作调用同一个jsp。因此,为了避免向jsp添加逻辑,我只修改了其中一个操作。我知道,我知道,我很混乱,但是看到我的其他问题,你就会知道我在做一般的事情。好吧,最后我在操作中实现了
ServletResponseAware
,并添加了一行
response.setHeader(“内容”)-
UrlReader.read("generateHTMLAction")