在struts 1.x中返回text / plain

时间:2013-10-23 10:48:12

标签: java ajax jquery struts-1

是否可以返回String类型的单个值,而不是转发到struts 1.x中的操作。

我收到的问题很少herehere

在他们提到的struts文档中,

  

Struts 1和Struts 2都可以返回任何类型的响应。

但在所有讨论中,他们都对struts 2进行了解释。

有人可以帮我,我怎么能用struts1.x做什么?

更新 保罗·巴尔加斯的建议解决了我的问题。

1 个答案:

答案 0 :(得分:5)

由于您有javax.servlet.http.HttpServletResponse的实例,因此可以直接编写文本。 e.g:

public class HelloWorldAction extends Action {

    public ActionForward execute(ActionMapping mapping, ActionForm form,
            HttpServletRequest request, HttpServletResponse response)
            throws Exception {

        response.setContentType("text/plain");
        response.setCharacterEncoding("UTF-8");
        PrintWriter out = response.getWriter();
        out.print("We are send text plain");

        return null;
    }

}

通过这种方式,您可以发送JSON,XML或二进制文件。

如果要组合传统请求和Ajax(例如,使用jQuery.ajax),可能要检查发送完整的HTML页面或片段,JSON等等,用:

private final boolean isAjaxRequest(final HttpServletRequest request) {
    final String header = request.getHeader("X-Requested-With");
    return header != null && header.equalsIgnoreCase("XMLHttpRequest");
}