action中有username登录后用JS文件接收:var name;name = '${username}';alert(name + "你好!");JSP页面直接调用JS文件,然后页面直接弹出 '${username}'你好 的对话框在JSP页面用<s:property value="username" / > 是可以接收到username变量的。要想在对话框里弹出“用户名你好”来,该怎么做啊?貌似是我JS文件里没获取到username对象。

解决方案 »

  1.   

    你把用户名传到你的要显示页面上后, 在js里 name=<% = Action返回的参数%> 这样
      

  2.   

    var name;name = '${username}';这句话只能放到页面上才会有效果,   
    方法1:你可以在JS里面 写个方法,传入一个参数,,然后在 页面上调用那个方法  把  ${username}传进去,,
    方法2:  你可以在页面上写一个隐藏域 <input type=hidden id='username'  value="${username}" />  然后再JS获得ID为 username 的对象的值,
      

  3.   

    1楼朋友的好像不行啊~还是会输出name=<% = username%>你好用2楼朋友的第一个方法可行,不过隐藏表单的位置一定要在调用JS文件的上面:
      <input type="hidden" id="username" value="${username}" />
      <script type="text/javascript" src="test.js" ></script>第二个方法应该也是可行的,我一会去试试~
      

  4.   

    在你的ACTION里面加
    ActionContext.getContext().put("USERNAME", username);然后再JS里面
    var  username ='<%=request.getAttribute("USERNAME")%>';
    alert(username );
      

  5.   

    第一个方法也行JS中:
    function login(name){
    alert(name + "你好!");
    }JSP中:
    <body onload="login('${username}')">
      <script type="text/javascript" src="test.js" ></script> 
        登录成功! <br>
    </body>调用方法的时候onload = login('${username}') 括号中一定要加单引号,不知道怎么解释...这些都是通过在页面定义变量或是将变量作为参数传入JS中的方法,想知道有没有直接在JS中调用action中变量的方法?
      

  6.   

    5楼的朋友貌似不好用...
    <%=request.getAttribute("USERNAME")%>你好!...