2014-09-10 63 views
0

我有一個java類,它包含一個方法,其中包含一些業務邏輯。我需要直接從JSP中調用此Java方法(除了通過servelet或struts動作或腳本),只需點擊一下按鈕即可。我知道這可以使用DWR(按照其行爲)完成,但有沒有可能使用dojo框架直接調用java方法?使用dojo的Java方法調用

我擔心dojo而不是使用DWR,因爲在我的應用程序中我已經使用了dojo框架。我的應用程序還包含struts2,但沒有調用struts動作,使用dojo(ajax調用)本身,我需要直接調用該特定的java方法,就像在DWR中一樣。

有使用dojo經驗的人請指導我。

注意:請讓我知道,如果你需要我的應用程序的代碼部分,但我認爲上面的描述可能足以理解我的動機。

謝謝。

+0

休息電話怎麼樣? – Will 2014-09-10 17:26:35

+0

ajax調用有什麼問題? – 2014-09-10 19:21:46

+0

如果使用Struts2,無論您使用哪種客戶端庫/框架,都應該調用Action。如果您想從實用程序類調用靜態方法,則可以將其包裝在一個操作方法中;如果這個操作對於很多頁面來說很常見,那麼你可以把它放在一個由其他的擴展的BaseAction中......只是不要使用與struts2集成的舊的dojo:最新的普通dojo,普通的jquery或者struts2-jquery – 2014-09-10 20:58:49

回答

0

zulox,

你需要做的是建立一個Model-View-Controller architecture您的Web應用程序。藉此,您可以在前端發生點擊後在後端代碼中調用方法。

使用MVC,該視圖有效地提供了應用程序的用戶界面元素。它會將來自模型的數據呈現爲適合用戶界面的表單。

控制器接收用戶輸入並調用模型對象和視圖以執行適當的操作。

該模型管理應用程序的基本行爲和數據。

你的JSP將如下所示:

<%@page contentType="text/html" pageEncoding="UTF-8"%> 

    <!DOCTYPE html> 
    <html> 
     <head> 
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
      <title>JSP Page</title> 
     </head> 
    <body> 
     <form action="add" method="post"> 
      Value 1:<input type="text" name="val1" id="val1"/><br> 
      Value 2:<input type="text" name="val2" id="val2"/><br> 
      <input type="submit" value="Submit"/><br> 
     </form> 
    <%String sum=""; 
    sum = (String)request.getAttribute("val3"); %> 
    <input type="text" value="<%=sum%>" /> 
    </body> 
</html> 

,然後在後端你的java文件看起來像下面這樣:

package controller; 

import java.io.IOException; 
import java.io.PrintWriter; 
import javax.servlet.ServletException; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 
public class add extends HttpServlet { 
String val3; 
protected void processRequest(HttpServletRequest request, HttpServletResponse response) 
     throws ServletException, IOException { 
    response.setContentType("text/html;charset=UTF-8"); 
    PrintWriter out = response.getWriter(); 

    String val1=request.getParameter("val1"); 
    String val2=request.getParameter("val2"); 
    if(val1 != null && val2 != null) 
    val3=""+(Integer.parseInt(val1)+Integer.parseInt(val2)); 
    else 
    val3=""; 
    request.setAttribute("val3",val3); 
    request.getRequestDispatcher("index.jsp").forward(request, response); 

    try { 
    } finally {    
     out.close(); 
    } 
} 


@Override 
protected void doGet(HttpServletRequest request, HttpServletResponse response) 
     throws ServletException, IOException { 
    processRequest(request, response); 
} 


@Override 
protected void doPost(HttpServletRequest request, HttpServletResponse response) 
     throws ServletException, IOException { 
    processRequest(request, response); 
} 


@Override 
public String getServletInfo() { 
    return "Short description"; 
}// </editor-fold> 
} 

你也需要一個可以託管你的後端文件併爲你的JSP服務的web服務器/ servlet容器。 Apache Tomcat是一個很好的開始學習。 Herehere對於Tomcat來說是非常棒的教程,它將幫助您開始設置所有內容,以便您可以輕鬆地爲頁面提供服務。

如果您有任何問題,請讓我知道!