2012-02-14 3 views
4

테이블의 내용을 보여주는 jsp 페이지가 있습니다. 사용자가 페이지를 보는 동안 테이블 내용이 2 초마다 변경됩니다. 그래서 사용자는 항상 새롭고 업데이트 된 내용을보기 위해 페이지를 새로 고침해야합니다. 페이지를 새로 고치지 않고 jsp 페이지의 내용을 어떻게 업데이트 할 수 있습니까? gmail.com 에서처럼 사용자가 새로 고침하지 않고도 사서함의 크기가 계속 증가하는 기능을 원했습니다.새로 고침없이 jsp 페이지의 내용을 업데이트하십시오.

답변

7

Ajax (jQuery가 가장 선호하는 방법)를 사용해보아야한다.

http://api.jquery.com/jQuery.get/

http://api.jquery.com/jQuery.post/

이것은 다음 페이지를 새로 고치지 않고 원하는 데이터를 반환 컨트롤러를 칠 것이다.

그래서 당신은 컨트롤러에서의 login.jsp ...

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 
<%@ page session="true" %> 
<html> 
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> 
<head> 
    <title>Login</title> 
</head> 
<body> 
<h1> 
    Hello please login to this application 
</h1> 
<script> 

     function login(){ 
      var username = $("#username").val(); 
      var password = $("#password").val(); 

      $.post('login', { username : username , password : password }, function(data) { 
       $('#results').html(data).hide().slideDown('slow'); 
      }); 
     } 

</script> 
Username : <input id="username" type="text" /> 
Password : <input id="password" type="password" /> 
<input name="send" type="submit" value="Click me" onclick="login()" /> 
<form name="next" action="auth/details" method="get"> 
    <input name="send" type="submit" value="Go Through"/> 
</form> 
<div id="results" /> 
</body> 
</html> 

가 있다면 예를 들어, 당신은 다음 모델에 충돌,하지만 간단하게하기 위해, 나는 아주 간단한 예를 완료했습니다 .. .

/** 
* Handles requests for the application home page. 
*/ 
@Controller 
public class LoginController { 

    private static final Logger logger = LoggerFactory.getLogger(LoginController.class); 

    Util util; 

    /** 
    * Simply selects the home view to render by returning its name. 
    */ 
    @RequestMapping(value = "/login", method = RequestMethod.POST) 
    public String home(Locale locale, Model model, String username, String password) { 


     if(username.equalsIgnoreCase("david")) 
     { 
      model.addAttribute("validUser", "Welcome " + username); 

      return "home"; 
     } 
     else 
     { 
      model.addAttribute("validUser", "Incorrect username and password"); 
      return "home"; 
     } 

    } 

} 

이는 ..., 집에 대한 코드는 다음과 같습니다이 유효하다면 말을 사업부로 HTML의 느린 스크롤 비트를 추가

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 
<%@ page session="true" %> 
<html> 
<body> 
<P> ${validUser}. </P> 
</body> 
</html> 
+0

동일한 작업을 수행하는 jsp 페이지의 샘플을 제공 할 수 있습니까? –

+0

샘플에 중요한 비트가 $ .post ...가 추가되었습니다. – david99world

2

ajax를 요청하고 서버에서 데이터를 가져 와서 Java 스크립트를 사용하여 뷰에서 해당 데이터를 렌더링 할 수 있습니다.

+1

동일한 작업을 수행하는 JSP 페이지 샘플을 제공 할 수 있습니까? –

관련 문제