2013-07-26 10 views
2

저는 스프링 프레임 워크에서 java ee 웹 클라이언트를 구현했습니다. 그것은 웹 서비스에서 데이터를 읽고 표 형식으로 레코드를 표시합니다. 이 테이블에서 확인란을 선택하여 여러 레코드를 삭제할 수 있습니다.자바 jstl은 아약스를 사용하여 테이블 데이터를 채 웁니다.

현재 메타 새로 고침을 사용하여 테이블 레코드를 새로 고침합니다. 이유는 자바 스크립트 타이머 새로 고침이 페이지를 맨 위로 가져 오기 때문입니다. 사용자가 기록을 볼 때 사용자 경험에 영향을줍니다.

사용자가 삭제할 레코드를 선택하고 삭제를 클릭하면 자바 스크립트 확인 대화 상자 팝업이 나타납니다. 메타 새로 고침을 사용하여 문제가 메신저 대화 상자 팝업을 확인하면 새로 고침을 중지 할 수 없습니다. jquery 시도했지만 작동하지 않았다.

메신저는 테이블에 대한 레코드를 검색하기 위해 ajax를 구현하려고합니다. 하지만 어떻게 효율적으로 구현할 수 있습니다. 테이블의 레코드는 동적입니다.

더 추가하려면 여러 개의 html 표가 있습니다. 예 :

#table 1 
<table><tr><td></td>....</tr></table> 

#table 2 
<table><tr><td></td>....</tr></table> 

#table 3 
<table><tr><td></td>....</tr></table> 

답변

2

템플릿을 JSP로 사용하는 것이 좋습니다. 즉, JSP 본문에는 HTML 코드, 양식 및 표와 같은 정적 요소가 포함되지만 tag libs를 사용하여 동적 데이터를 삽입 할 수 있습니다. 귀하의 경우에는 데이터베이스 레코드의 데이터입니다.

<c:forEach items="${listOfRecords}" var="item"> 
    <table> 
     <tr> 
      <td>  
       <c:out value="${item}"/> 
      </td> 
     </tr>  
    </table> 
</c:forEach> 

그러면 서블릿을 사용하여 클라이언트에게 응답으로 보낼 수 있습니다. AJAX 호출은 응답을 받고 HTML을 현재 테이블에 추가합니다. 아래의 코드 조각에서 AJAX는/approot/myservlet에있는 서블릿에 요청의 데이터 ("recordid ="+ id)를 보냅니다. 서블릿은 요청을 수신하면 요청에서 레코드 ID를 검색하고 데이터베이스에서 레코드를 삭제하고 마지막 쿼리 이후에 추가 된 모든 레코드를 검색하고 요청 디스패처를 통해 JSP에 새 레코드를 전달하며 새로운 레코드를 포함하는 HTML 테이블 데이터가 생성되어 브라우저에 응답으로 전송됩니다. success 속성의 javascript가 시작되고 msg 변수에 포함 된 응답이 현재 테이블에 추가됩니다.

이것은 여러분의 해결책이라고 생각하는 것의 간단한 개요입니다. 당신이 단계별 가이드를 설정하는 방법에 대해 단계별로 찾을 수 있습니다. J2EE application using a web service, JSP, Servlet, tag libs and AJAX.

+0

안녕하세요, 어떻게 컨트롤러에서 jsp 템플릿을 반환 할 수 있습니까? 텍스트로 반환. – nuttynibbles

+0

jsp 템플릿을 반환 할 수 있습니까? btw 메신저 타일과 봄 mvc를 사용하여. 나는 메신저가 을 포함한 모든 것을 반환한다는 것을 깨닫습니다. 당신은 내가 jsp 템플릿 만 반환 할 수있는 방법을 알고 있습니까? – nuttynibbles

+0

헤이 템플릿을 관리했습니다. 내 컨트롤러에 오류가 있다는 것을 알고 있습니다. – nuttynibbles

0

페이지 새로 고침을 제거하고 AJAX를 사용합니다. 이것은 당신이이 문제에 접근해야한다고 생각하는 방법입니다. AJAX 호출은 마지막 쿼리 이후에 추가 된 레코드를 데이터베이스에 쿼리하는 서블릿에 정기적 인 간격으로 (타이머를 사용하여) 수행됩니다. 리턴 된 레코드는 JSP 템플리트 및 태그 libs를 사용하여 HTML로 형식화되고 클라이언트에 응답으로 전송됩니다. AJAX는 응답을 받고 적절한 테이블에 HTML을 추가합니다. AJAX에서 서블릿을 호출하는 것을 중지하려면 팝업 상자를 표시하기 직전에 타이머를 멈추고 삭제 된 레코드로 페이지가 업데이트 될 때 다시 시작하십시오.

EDIT : (id = "table1")을 사용하여 각 표를 식별 한 다음 해당 HTML을 오른쪽 표에 추가 할 수 있습니다.

+0

안녕하세요, 알렉스, 내게 용서해 주셔서 감사합니다. 내가 믿을 JSP로 템플릿을 말할 때, 그것은 JSTL 권리를 의미합니다. 그래서 나는 컨트롤러에서 반환 된 결과를 얻을 것이다. 하지만 어떻게 JSP로 템플릿으로 반환 된 결과 형식 및 반환 아약스? 내가 JSP로 템플릿에서 서식있는 HTML 아약스에 간단한 문자열을 반환하는 방법을 알아? – nuttynibbles

관련 문제