2016-08-04 21 views
0

我想在点击一行网页时调用java函数。 我没有得到调用它的正确语法。 或者我应该使用JavaScript连接我的数据库,如果这是一个合适的方法。? 我米使用以下代码:通过onclick调用jsp中定义的Java函数

<% 
    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()); 
    } 
    %> 

我的Java函数

<%!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函数,您可以通过AJAX从中调用任何服务器端(JSP/Servlet)方法。

或者,您可以构建的onclick像一个网址:

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

,并从这个你可以调用服务器端方法。

相关问题