在struts2应用程序中,我正在调用Ajax请求,并将字符串直接写入响应,如下所示,并返回操作null的execute方法。
null
ServeletActionContext.getResponse().getOutputStream().print("sample string"); return null;
在struts.xml下面的声明中,(以下是应用程序如何以正常工作的结果类型声明操作的方式。由于我不需要调用JSP或其他操作的结果,因此未添加结果标签)
struts.xml
<action name="controller" class="controller">
我将剖面图映射到 application-context.xml
application-context.xml
<bean id="controller" class="com.test.ControllerAction" scope="prototype">
然后我有如下的ajax调用,
$.ajax({url:"/root/me/controller.action",success:function(result){ alert(result); }});
但是问题出在上面,而不是警告"sample string"我为响应编写的内容,而是警告上述Ajax调用所在的整个JSP页面。我在这里想念什么?
"sample string"
stream默认情况下返回结果类型,它输出文本。
stream
<action name="controller" class="ControllerAction"> <result type="stream"> <param name="contentType">text/html</param> <param name="inputName">stream</param> </result> </action
stream应该是财产类型ImputStream;
ImputStream
public class ControllerAction extends ActionSupport { private InputStream stream; //getter here public InputStream getStream() { return stream; } public String execute() throws Exception { String str = "sample string"; stream = new ByteArrayInputStream(str.getBytes()); return SUCCESS; } }