论坛首页 入门技术论坛

如何不用struts2的ajax框架实现ajax功能的问题

浏览 2854 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-07-10  

如果不用struts2自带的ajax的验证框架,自己实现ajax JS与Action进行交互,在struts1.x里可以这样写:

function sendURL(userAccount){
		createXMLHttpRequest();
		var url = "${ctx}/userAction.do?method=check&userAccount="+userAccount;
		xmlHttp.onreadystatechange = callBack;

		url=encodeURI(url);
		//xmlHttp.setRequestHeader("Content-Type","text/html;charset=UTF-8");
		xmlHttp.open("POST",url,true);
		xmlHttp.send(null);
	}


	function callBack(){
		if(xmlHttp.readyState==4){
			if(xmlHttp.status == 200){
				checkFlag = xmlHttp.responseText;
				var message = "";
				if(checkFlag != "1"){
					message = "${key['check.failed']}";
					alert(message);

				}
			}
		}
	}

 并且不要在struts.xml里进行请求处理后的转发。

但在struts2.0里怎么实现这个ajax调用的功能,有几点不明白:

1>JS里怎么写,难道是var url = "${ctx}/check.action?userAccount="+userAccount;

2>应该需要在struts.xml里配置:

<package name="Book_CRUD" extends="struts-default" namespace="/Book">
                <action name="check" class="com.cn.kevin.spring.action.BookAction" method="checkIsbn">
            
        </action>
    </package>

如果不这样声明的话,上面的check.action就不知从何而来了。但是这样子是否请求的返回被框架拦截,而不能到达页面啦? 并且这种写法我测试过,好像不行,根本就没有进入checkIsbn这个方法里。

请各位熟悉Struts2的朋友解答一下,小弟敬候,谢谢!!

   发表时间:2008-07-10  
已经解决了,方法如下:
function sendURL(userAccount){  
        createXMLHttpRequest();  
        var url = "check.action?isbn="+userAccount;  
        xmlHttp.onreadystatechange = callBack;  
 
        url=encodeURI(url);  
        //xmlHttp.setRequestHeader("Content-Type","text/html;charset=UTF-8");  
        xmlHttp.open("POST",url,true);  
        xmlHttp.send(null);  
    }  

在struts.xml里的
<action name="check" class="com.cn.kevin.spring.action.BookAction" method="checkIsbn"> 
              
        </action>
中不写<result>标记
0 请登录后投票
   发表时间:2009-03-01  
请问一下,你的com.cn.kevin.spring.action.BookAction里的execute方法是怎么写的啊?怎么得到传过来的值啊?
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics