我正在尝试向Action发送AJAX请求,其中我从JSP页面发送了一个参数。所以我的Action类正在接收ajax请求,但是我通过AJAX类发送的参数在Action类中为null。
这是我的动作班:-
public class AjaxAction{
String name;
private String welcomeMessage;
public String execute(){
System.out.println("AJax called "+name);
welcomeMessage="Hello"+name;
return "success";
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getWelcomeMessage() {
return welcomeMessage;
}
public void setWelcomeMessage(String welcomeMessage) {
this.welcomeMessage = welcomeMessage;
}
}
这是我的struts.xml
文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<constant name="struts.devMode" value="true" />
<package name="json" namespace="/" extends="json-default">
<interceptors>
<interceptor-stack name="defaultStack">
<interceptor-ref name="json">
<param name="enableSMD">true</param>
</interceptor-ref>
</interceptor-stack>
</interceptors>
<action name="ajaxAction" class="com.action.AjaxAction">
<result type="json"/>
</action>
</package>
这是我的Jsp文件:
<title>Struts Ajax Example</title>
<script type="text/javascript">
function ajaxStruts() {
data = {
name:$("#name").val(),
};
alert(data);
$.ajax({
type: 'GET',
contentType:'application/x-www-form-urlencoded',
url:'ajaxAction',
data: $("#ajaxform").serialize(),
success: function(data){
alert(data);
}
});
}
</script>
</head>
<body>
<fieldset>
<form method="POST" id="ajaxform">
Name::<input type="text" id="name" name="name">
<input type="button" name="submit"
value="submit" onclick="return ajaxStruts();">
</form>
</fieldset>
<fieldset>
<div id="ajaxResult"></div>
</fieldset>
</body>
</html>
请帮助我..我要去哪里了....
问题出在您的拦截器中struts.xml
。
删除它们或正确指定它们。您已覆盖defaultstack
不好的做法。
您应该将拦截器堆栈的名称作为自定义名称,而不是struts堆栈。
例如,将您的堆栈命名为mystack。
<interceptors>
<interceptor-stack name="mystack">
<interceptor-ref name="defaultStack"/>
<interceptor-ref name="json">
<param name="enableSMD">true</param>
</interceptor-ref>
</interceptor-stack>
</interceptors>
这意味着defaultstack
+ json拦截器的所有拦截器。这将打包在名为mystack的拦截器堆栈中
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句