Java jsp上的Struts 2动作响应
我想在jsp页面上获取操作的HTTPServletResponse,但我不知道如何 我对jsp的ajax调用:Java jsp上的Struts 2动作响应,java,jquery,ajax,struts2,action,Java,Jquery,Ajax,Struts2,Action,我想在jsp页面上获取操作的HTTPServletResponse,但我不知道如何 我对jsp的ajax调用: jQuery.ajax({ url : 'actionURL', type: "POST", data : {input: "example"}, dataType: "html", success: function(response) { alert(response); if (response == 1) { jQuery("#message").html("done!");
jQuery.ajax({
url : 'actionURL',
type: "POST",
data : {input: "example"},
dataType: "html",
success: function(response) {
alert(response);
if (response == 1) {
jQuery("#message").html("done!");
}
}
});
我的行动课:
public class MyAction implements ServletResponseAware {
public final String execute() throws IOException {
String return_code = "1";
try {
something...
} catch (Exception e) {
return_code = "0";
}
response.setContentType("text/html;charset=UTF-8");
response.getWriter().write(return_code);
return "success";
}
}
如何仅访问jsp上的return_code变量?因为现在在脚本中警报整个页面的HTML代码作为响应。。。谢谢
returnCode
而不是return\u code
),并且可能是一个整数,因为它包含一个数字李>
public class MyAction implements ServletResponseAware {
private Integer returnCode;
public Integer getReturnCode(){
return returnCode;
}
public final String execute() throws IOException {
try {
/* do something... */
returnCode = 1;
} catch (Exception e) {
e.printStackTrace();
returnCode = 0;
}
return "success";
}
}
“success”
结果映射到只包含打印值的JSP:
<%@ page contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="s" uri="struts-tags.tld"%>
<s:property value="returnCode" />
然后返回的JSP将是单个值。但这是一种不好的做法,很容易导致错误(例如,额外的空格)。然后改变你的方法,然后returnCode
作为root
对象(记住将dataType
从html
更改为json
)使用
struts2 json插件
返回json响应。非常感谢!抱歉,这只是我代码中的一个片段……我将ajax脚本修改为:……数据类型:“json”,。。。以及struts.xml:returnCode,但现在它抛出的原因是:java.lang.IllegalArgumentException:application/json;charset=UTF-8与[text/html]相比无效。请将此代码和完整的异常stacktrace添加到您的问题中,以便我们能够帮助您。顺便说一句,你走了这条路真是太好了。