2016-08-04 3 views
0

Я хочу вызвать функцию java при щелчке по строке моей веб-страницы. Я не получаю правильный синтаксис вызова. Или я должен использовать javascript для моей базы данных, если это подходящий метод.? Я использую следующий код:Вызов функции Java, определенной в jsp через onclick

<% 
    try{ 
Class.forName("com.mysql.jdbc.Driver"); 
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/lvcdatabase","root","mayank"); 
String query = "Select * from kitchentable;"; 
PreparedStatement pst = conn.prepareStatement(query); 
ResultSet rs =pst.executeQuery(query); 
while(rs.next()){ 
%> 


    <form action="processorder" method=""> 
     <table id="example" > 
     <%String s = String.valueOf(rs.getInt("orderno")); 
     int i = rs.getInt("orderno");%> 
     <tr id="row<%=s%>" onclick="a(<%=s%>)" onclick="update(<%=s%>)"> 

    onclick="<%update(s);%>" works but it calls java function when page is loaded everytime. Onclick loses its significance... 


      <td><%=rs.getInt("orderno")%></td> 
      <td><%=rs.getString(3)%></td> 
      <td><%=rs.getString(3)%></td> 
      <td><%=rs.getString(5)%></td> 
      <td><input class="service" id="service<%=s%>" onclick="b(<%=s%>)" type="button" value="Service Status"></td> 
     </tr> 




     <tr id="buttonrow"> 
      <td colspan="1"></td> 
      <td colspan="1"><input type="button" style="background-color:#ff0000" value="Pending" id="redbutton<%=s%>" class="statusbutton"></td> 
      <td colspan="1"><input type="button" style="background-color:#ffbf50" value="Cooking" id="amberbutton<%=s%>" class="statusbutton"></td> 
      <td colspan="1"><input type="button" style="background-color:##e5ffe5" value="Cooked" id="greenbutton<%=s%>" class="statusbutton"></td> 
      <td colspan="1"></td> 

     </tr> 


    </form><br> 
    <%} %> 
    </table> 
    <%rs.close(); 
    pst.close(); 
    conn.close(); 
    }catch(Exception e){ 

     System.out.println("Error: "+e.getMessage()); 
    } 
    %> 

Моя функция ява

<%!public void update(String f){ 
    String l = f; 

    new BusinessFunctions().updateStatus(l); 
    } 
    %> 
+0

Вы должны узнать разницу в том, где выполняется код: JSP выполняется ** на сервере ** и генерирует HTML (и JavaScript и т. Д.), Который затем запускается ** в браузере **. Если вам нужно вызвать серверный код из браузера, используйте [AJAX] (http://stackoverflow.com/questions/tagged/ajax). –

ответ

0

onclick это событие на стороне клиента.

Вы можете указать только любую функцию javascript, из которой вы можете вызвать любой метод на стороне сервера (JSP/Servlet) через AJAX.

или, Вы можете построить URL в OnClick как:

<a href="/yoururl?id="+<%=s%>>Order No</a> 

и от этого вы можете вызвать метод на стороне сервера.

Смежные вопросы