当前页面,点击一个按钮,调用一个javascript函数
在这个函数里,想调用一个abcAction.do,并返回值
然后根据返回的值,再做进一步的处理
这个strtus怎么实现啊?
谢谢

解决方案 »

  1.   

    这个一般就要用ajax来处理了,因为你的页面并没有刷新,必须异步提交,在服务器端写一个action
    其中要返回数据,response.getWriter().write();来输出。
      

  2.   

    因为是struts,服务器端的action还是extends Action 的
    那么在最后还是要用 return mapping.findForward("OK");
    那怎么用response.getWriter().write();传值呢?
    谢谢
      

  3.   

    这种事情不用ajax吧,我写个简单示例,你参考一下吧
    页面上
    <input type="button" name="tijiao" value="tijiao" onclick="tijiao()">
    <script language="java***">
    function tijiao(){
       location = abcAction.do
    }
    </script>
    abcAction.do所调用的Action里面想用返回值做进一步处理的话可以把逻辑从Action里面去写,
    例如在Action里面调用PringtWriter out = Response.getWriter();
    out.println("<script language='javascript'>")
    out.println("function test(){
       string str = "test" + '在Action里面取到的参数'
    }")
    out.println("</script>")思路大概就是这样,自己试着做一下吧!~
      

  4.   

    最简单的办法你在 web.xml 里在设几个 servlet 就可以了:)
      

  5.   

    可以jsp页面里倒入相关的form formbean  就可以传 过去了 
      

  6.   

    因为是struts,服务器端的action还是extends   Action   的 
    那么在最后还是要用   return   mapping.findForward("OK"); 
    那怎么用response.getWriter().write();传值呢? 
    谢谢return mapping.findForward("OK");  没用了。 改成return null 就行
    传什值就用response.getWriter().write(值); 就行
      

  7.   

    dodozhu,你说的还是不能直接取到返回来的值,我更改了一下,如下,可以的,但不知道这样对不对<input   type="button"   name="tijiao"   value="tijiao"   onclick="tijiao()"> 
    <script   language="java***"> 
    function   tijiao(){ 
    //      location   =   abcAction.do 
       var XMLSender = new ActiveXObject("Microsoft.XMLHTTP");
       XMLSender.Open("POSTabcAction.do?relateId="+relateId,false);
       XMLSender.send("");
       var rtnValue = XMLSender.responseText;
       alert(rtnValue);

    </script> 
      

  8.   

    这个不用ajax也一样可以啊
    在3楼的基础上,在action中将要传给jsp的值用request.setAttribute("keyNmae",value)暂存;
    然后通过 mapping.findForward("OK")转发向jsp,在jsp中通过request.getAttribute("keyName") 取值就行啦.