当前位置: 首页 > 知识库问答 >
问题:

Spring MVC:如何修改Spring控制器发送的响应?

莫宁
2023-03-14

我有一个使用Spring MVC 3.1.3的应用程序和使用Dojo1.4开发的UI。应用程序只有很少的控制器处理通过dojo.io.iframe.send上传的二进制文件。控制器发送一个json响应,该响应必须用

<html><body><textarea>{my json response}</textarea></body></html>.

我实现了web.xml中定义的自定义筛选器:

<filter>
    <filter-name>dojoIframeFilter</filter-name>
    <filter-class>com.app.web.MultipartAjaxFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>dojoIframeFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>
public void doFilter(ServletRequest request, ServletResponse response,
        FilterChain chain) throws IOException, ServletException {

    if (request.getContentType() != null
            && request.getContentType().contains("multipart/form-data")) {
        CharResponseWrapper wrapper = new CharResponseWrapper((HttpServletResponse) response);

        chain.doFilter(request, wrapper);
        log.info(wrapper.toString());
        //Modify response here
    } 
    else {
        chain.doFilter(request, response);
    }
}

提前道谢。

更新:我禁用了Spring Security性,并用普通spring mvc进行了测试,但问题仍然存在。我修改了标题和问题描述。

共有1个答案

史钊
2023-03-14

朋友们,为了成功修改ServletResponse,我们还需要子类ServletOutputStream。详细解决方案请参见http://docstore.mik.ua/orelly/xml/jxslt/ch08_04.htm。

 类似资料:
  • 我用这样的控制器构建了一个json REST服务: 它工作得很好,但是现在我需要修改所有的响应,并为它们添加“状态”和“消息”字段。我读过一些解决方案: 从所有控制器方法返回某个特定类的对象,例如RestResponse,它将包含“状态”和“消息”字段(但这不是通用解决方案,因为我必须修改所有控制器并以新样式编写新控制器) 拦截所有带有方面的控制器方法(但在这种情况下,我无法更改返回类型) 如果我

  • 问题内容: 我已经使用像这样的控制器构建了json REST服务: 它工作正常,但现在我需要修改所有响应,并向所有响应添加“状态”和“消息”字段。我已经阅读了一些解决方案: 从某个特定类的所有控制器方法对象返回,例如RestResponse,它将包含“ status”和“ message”字段(但这不是通用解决方案,因为我将不得不修改所有控制器并以新样式编写新控制器) 截取具有方面的所有控制器方法

  • 问题内容: 我正在编辑内置的表单。 我在对话框中显示该表单,然后提交。 数据已正确输入数据库。 但是我不知道是否需要将一些寄回。其实我对事情有点困惑。 假设我在表中使用``jQuery添加了一行,当我提交表单时,然后在提交数据之后,我想发回那些行数据,以便我可以动态添加表行以显示添加的数据。 我很困惑如何获取这些数据。 这是我当前的代码: 这只是带有成功消息的模板。 问题答案: Symfony 2

  • 如何通过Ajax调用将jsonArray发布到spring控制器?? 这是我的JSON数组想通过这个!!

  • 我试图将JSON发送到Spring MVC控制器。在Spring MVC方面,所有的配置都是正确的。 下面是代码,但似乎没有运行: 你知道我哪里出错了吗?我对JSON是新手。我试图将JSON发送到Spring MVC控制器。 当调用/application/run/save时,我会得到一个JSON响应。但是,@RequestBody不能工作。 我还是没有运气。读过一些很多类似的问题。需求是服务器将

  • 我想从spring控制器返回一个字符串(json字符串)作为它接收到的AJAX调用的响应,响应可能会根据我是否提交了@Valid表单而有所不同。这就是我处理它的方式,我想知道这是否被认为是最佳实践?请注意,我使用的是@RestController,所以@ResonseBody应用所有方法。