2014-02-09 2 views
0

나는 JSP와 Java 클래스가 서로 작동합니다.Java 클래스에서 JavaScript 함수를 실행하는 방법은 무엇입니까?

Java 클래스에 부울 변수가 있습니다. 값이 true로 변경되면 AJAX로 항상 확인하고 싶습니다. JavaScript 경고는 메시지를 보여줍니다. JSF에서

,이 같은 무언가가 :

<h:outputScript rendered="#{categoryBean.showCategoryNameAlert}"> 
    alert("CategoryName already exist!"); 
</h:outputScript> 

하지만 JSP에서 작업을 수행하는 방법을 몰라?

+0

참조 ([JSF와 AJAX를 사용] http://docs.oracle.com/javaee/7/tutorial/doc/jsf-ajax.htm# GKIOW) –

+0

tnx,하지만 JSF를 원하지 않는다. JSP로이 작업을 수행하고 싶다. –

답변

1

-

public class YourClass { 
    private static boolean booleanValue = false; 

    public void setBooleanValue() { 
     booleanValue = true; 
    } 

    public void resetBooleanValue() { 
     booleanValue = false; 
    } 

    public boolean getBooleanValue() { 
     return booleanValue; 
    } 
    ... 
} 

- boolean 변수로 클래스의

프런트 엔드

<!DOCTYPE html> 
<html> 

<head> 
<meta charset="UTF-8"> 

<title></title> 

<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script> 
<script type="text/javascript"> 
$(document).ready(function() { 
    setInterval(function(){ 
     $.get('/backEnd',function(responseText) { 
      if(responseText == 'true') { 
       alert("Variable has been set"); 
      }     
     }); 
    },1000); 
}); 
</script> 
</head> 

<body> 
</body> 

</html> 

맨 끝

@WebServlet(name = "checkerServlet", urlPatterns = { "/backEnd" }) 
public class CheckerServlet extends HttpServlet { 
    private YourClass yourClass; 

    @Override 
    public void init() { 
     yourClass = new YourClass(); 
    }  

    @Override 
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {   
     response.setContentType("text/plain"); 
     PrintWriter writer = response.getWriter(); 

     if(yourClass.getBooleanValue) { 
      writer.write("true");     
     } else { 
      writer.write("false"); 
     } 

     writer.close(); 
    } 

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

참고.

서블릿을 사용하지 않는 경우이 호출을 사용할 수 있습니다.

<%@ page import="fullpackagename.YourClass" %> 
<jsp:useBean id="yourClass" scope="request" class="fullpackagename.YourClass" /> 

<% 
    YourClass yourClass = new YourClass(); 
    // check your variable here 
%> 

프리젠 테이션 레이어에 추가하십시오.

당신을 위해

자동으로 새로 고침하는 코드 jsp -

<%response.setIntHeader("Refresh", 1); %>

0

특정 URL에서 수신 대기하는 서블릿이 필요합니다. 그것을주고/확인하십시오. 서블릿에서

:

if(category.categoryName != null) // or any thing you want 
    out.write("true"); // out is response outputstream 

JSP에서 "확인 /"모든 시간을 요청하고 경우에 경고하는 것은 사실 볼 아약스 요청.

당신은이 코드를 시도 할 수 있습니다
+0

감사하지만 JSP와 자바 클래스가있다. servlert가 없다. –

관련 문제