2014-04-23 115 views
0

工作,當我點擊一個按鈕,我需要去從一個JSP到另一個。 我的代碼如下,JSP:包括標籤沒有在JavaScript

<html> 
<hedd> 
    <script type="text/javascript"> 
    function go() { 
     document.myForm.txt1.value= "helloooo" ; 
      <jsp:include page="Slip18-1.jsp" > 
       <jsp:param name="param1" value="value1"/> 
      </jsp:include> 
    </script> 
</head> 
<body> 
    <form name="myForm"> 
     enter range<input type="text" name="txt1" value="aaaaa" /> 
       <input type="text" name="txt2" /> 
     <% out.println(" <input type=\"button\" value=\"submit\" onclick=\"go()\"> "); %> 
    </form> 
</body> 
</html> 

Slip18-1.jsp也是在同一個目錄。 如果我從javascript中刪除jsp:include標籤,它將在文本框字段中打印「hello」。 如果我把jsp:include標籤放入,那是腳本外部,那麼它也會工作! 我該如何解決這個問題?

+2

當然不是因爲JSP標記在服務器上運行和Javascript運行在客戶。在將HTML發送給瀏覽器之前,您的JSP包含的只是打印出這些頁面。 – developerwjk

+0

但我聽說我們可以在JavaScript中使用jsp標籤。如果這是不可能的,那麼我怎麼能把包含標籤按鈕點擊? – Melvin

回答

0

你可能想要的是打印位置到你的JavaScript(之前其發送到客戶端),並使用JavaScript來更改地址:

<script type="text/javascript"> 
    function go() 
    { 
     document.myForm.txt1.value= "helloooo" ; 
     document.location.href = "Slip18-1.jsp?param1=<%=value1%>"; 
    } 
</script> 

如果沒有,則查找阿賈克斯。例如,你可以使用jquery的阿賈克斯方法的請求發送到Slip18-1.jsp,然後做一些與響應:

  $.ajax({ 
      type : "POST", 
      url : "Slip18-1.jsp", 
      data : { 
       'param1' : '<%=value1%>' 
      }, 
      success : function(data) 
      { 
       alert(data); 
       $("#someHTMLElementID").html(data); //put the response in an element with id='someHTMLElementID', example <div id='someHTMLElementID'></div> 
      } 
     });