是否可以在 struts 1.x 中返回单个 String 类型的值而不是转发给 action。
在他们提到的struts文档中,
Struts 1 和 Struts 2 都可以返回任何类型的响应。
但在所有讨论中,他们都解释了 struts 2。
谁能帮我在struts1.x中怎么做?
更新: Paul Vargas 的建议解决了我的问题。
由于您有 的实例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");
}