是否可以返回String类型的单个值,而不是转发到struts 1.x中的操作。
在他们提到的struts文档中,
Struts 1和Struts 2都可以返回任何类型的响应。
但在所有讨论中,他们都对struts 2进行了解释。
有人可以帮我,我怎么能用struts1.x做什么?
更新 保罗·巴尔加斯的建议解决了我的问题。
答案 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");
}