本帖最后由 chenhongyuqq 于 2010-05-12 00:43:52 编辑

解决方案 »

  1.   

    <% String h = myBean.toName("menu1","id","href",%>meid<%); %>
    java代码属于最先执行的,也就是说页面初始化的时候就已经执行了,而此时页面的meid还属于没有初始化的状态,自然就出现了void的情况
    你的目的无非就是根据meid去后台执行myBean.toName这个方法
    你可以这样改:
    将<% String h = myBean.toName("menu1","id","href",%>meid<%); %>hre = "<%= h %>";
    这2行代码改为ajax实现,后台定义一个ajax方法,js调用这个ajax方法并传递meid,ajax方法返回你计算出来的那个h,然后alert就ok了
    至于ajax的实现方式我感觉引用prototype跟jquery非常方便,当然最原始的ajax也没什么问题,就是需要写一些兼容浏览器的判断代码
      

  2.   

    最好用Ajax的回调函数比较好点!不容易出错!
      

  3.   

    总算见识“牛人”是怎么把java和js结合起来的样子!<% String h = myBean.toName("menu1","id","href",%>meid<%); %>java代码是页面加载的时候就执行的,你要把jsp想象成一个类。
    js中的变量在java中是不会识别的
      

  4.   

    呵呵 谢谢你了,感觉能解决问题,也很详细,但是我没有接触过Ajax,我是刚刚开始接触网站的学习,刚才简单搜索了一下,还没有头绪具体怎么引用prototype跟jquery来实现这些功能,能解释的详细一些么?或者给些例子?呵呵,谢谢了 
      

  5.   


    呵呵 楼上也是这么建议的 但是我没有接触过Ajax 能帮忙举个例子么?谢谢了 呵呵
      

  6.   


    呵呵 我是刚刚开始学习写web程序,老师给我个网站 让改成动态的 我就开始学习 之前的都在网上搜索解决了,只有这个没有解决,如果能帮忙 非常感谢了 呵呵
      

  7.   

    1.首先你需要到网上下载一个prototype.js的文件,网上多的是
    2.然后引入
    <script type="text/javascript" language="javascript" src="js/prototype.js"></script>
    3.在你的js方法中这样使用ajax,xxx.action为struts2的写法,struts1为xxx.do,也可以直接写servlet
               var url = xxx.action?para1='+para1+'&para2='+para2;
       var request = new Ajax.Request(
       url,
       {
           method: 'get',
       onComplete: callbackExec,
       asynchronous: true
       });4.执行完后台servlet的方法后就返回到js中执行这一个回调方法,然后就能得到后台经过运算后的处理结果
    function callbackExec(response) {
           var resp = response.responseText;
           alert(resp);//此处就能打印出----result-你的结果
    }附加:下面为action或者servlet的方法
    public String getAcsLogRf() throws Exception{
        String para1= request.getParameter("para1");
        //todo:此处加入你的代码,计算出result(myBean.toName(...))
        String result = "你的结果";
        response.setContentType("text/xml;charset=utf-8"); // 固定格式,不可更改
            response.setHeader("Cache-Control", "no-cache, no-store");
            response.setHeader("Expires", "Sun, 19 Nov 1978 05:00:00 GMT");
           response.setHeader("Pragma", "no-cache");
           response.getWriter().print(result);
            return null;
    }