请问jquery如何用ajax与struts2交互
研究了一个晚上,摸不着头脑,找大家帮忙……
之前与servlet交互的时候,ajax的url指向servlet。
现在在学struts2,用struts2 url应该指向哪里啊? xxx.action吗?
jquery的post代码,url这样写对吗?
JScript code
var url = "login.action";
$( "#info" ).html( "登陆中..." );
$.post( url, { userName: userName, userPwd: userPwd }, loginCallback );
struts.xml 不知道login的配置有没问题
XML code
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
<package name="root" extends="struts-default" namespace="/root">
<action name="index">
<result name="success">/WEB-INF/pages/index.jsp</result>
</action>
<action name="login" class="net.mjrg.webstruts2ajax.actions.LoginAction" method="login">
<result name="success">/WEB-INF/pages/ok.jsp</result>
<result name="fail">/WEB-INF/pages/index.jsp</result>
</action>
</package>
</struts>
Action类里如何获取ajax传来的值,如何把处理完的数据返回给ajax的回调函数,能返回xml吗?Action类应该怎么写啊
------解决方案--------------------一般都是Action类通过Getter方法获得注入的值
------解决方案--------------------struts2 你学了多久?看看马士兵视频吧。
你配置了 命名空间 namespace="/root" 那么你的action路径就是 /root/login.action.
当然 你也可以把参数写在url里面,/root/login.action?username=XXX&password=YYYY
能看到信息就这么多
------解决方案--------------------晕,发完了才想起来,root前要不要 /,上面的路径不行话,去掉开始的斜线试一下,或者
/项目名/root/login.action
------解决方案--------------------页面可以这样去配置:
$.ajax({
url: "login.action",
data: "userName="+userName+"&password="+password, type: "POST",
success: function(data){
alert(data);//data就是action处理后返回的信息
}
});
struts的配置文件可以这样配置
<action name="login" class="net.mjrg.webstruts2ajax.actions.LoginAction" method="login">
</action>
在action中的login方法代码可以这样去写:
首先在action类中要有两个属性来接收页面传过来的userName和password,并且生成get和set方法
public void login(){
HttpServletResponse response = null;
String result = "";
try {
response = ServletActionContext.getResponse();
response.setCharacterEncoding("UTF-8");
response.setContentType("text/plain");
//这里处理你登录操作
result = "登录成功!";
response.getWriter().print(result);//将结果传到页面中 这里你可以组织你想要的数据格式来进行传递到页面
} catch (Exception e) {
result = "登录失败!";
try {
response.getWriter().print(result);
} catch (
IOException e1) {
}
}
------解决方案--------------------struts.xml[action:name]!methodname.action
------解决方案--------------------<script type="text/javascript"