我向一个类发送一个 Ajax 请求Action
并尝试从Result
.
这是我的 jQuery 代码:
$('#button').click(function(){
$.get('ajax.action','query="hi server:)")',function(x,r,s){
alert("server said :"+r+"-stat-"+s.status);
})
这里的响应总是“成功”,而不是预期的响应。
这是我的 Action 类的 execute()。
String response;
String query;
@Override
public String execute() throws Exception {
response=query+" - Struts added :";
setResponse(response);
return SUCCESS;
}
已经编写了用于字符串响应和查询的 getter 和 setter(此处未显示)。
这是我的Result
课
public class AjaxResponse implements Result {
@Override
public void execute(ActionInvocation ai) throws Exception {
System.out.println("I am the Ajax Rsponse RESULT");// this is displayed in the console
PrintWriter out =
ServletActionContext.getResponse().getWriter();
try {
ServletActionContext.getResponse().setContentType("text/plain");
ValueStack valueStack = ai.getStack();
// Object resObj= valueStack.findValue("response");
out.print("hi I am server ...");
System.out.println("Response WROTE---");
} catch (Exception e) {
e.printStackTrace();
}finally{
out.close();
System.out.println("Response Close "); // this is displayed in the console
}
}
}
这是我如何将 Result 类添加到 struts.xml
<result-types>
<result-type name="ajaxResponse" class="com.app.ajax.AjaxResponse" />
</result-types>
这是我宣布行动的方式
<action name="ajax" class="com.app.action.AjaxSupport">
<result type="ajaxResponse"/>
</action>
警报总是只给出SUCCESS,而不是预期的结果 'hi I am server ...' 。
控制台显示 Result 类的打印结果-("I am the Ajax Response RESULT","Response WROTE---","Response Close") 我使用了一个单独的 Result 类来松散耦合任务并在操作中执行业务逻辑班级。
请任何人让我知道我的问题在哪里?