4

是否可以在 struts 1.x 中返回单个 String 类型的值而不是转发给 action。

我在这里这里遇到了几个类似的问题。

在他们提到的struts文档中,

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

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

谁能帮我在struts1.x中怎么做?

更新: Paul Vargas 的建议解决了我的问题。

4

1 回答 1

7

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

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");
}
于 2013-10-25T13:12:43.903 回答