2011-03-08 5 views
1

jsp 파일에서 HTML 페이지를로드하려고합니다. 이렇게. 컨트롤러에서 jsp에 파일 이름을 지정하고 dojo를 사용하여 다른 컨트롤러를 호출하고 파일 이름을 전달합니다. 웹 페이지에 새 파일 내용이 표시되지 않습니다.

<script type="text/javascript"> 
var url = dojo.moduleUrl("dijit.form", "<c:url value="/getfile?Name=${fileName}"/>"); 
    dojo.xhrGet({ 
    url: url, 
    load: function(html){ 
     dojo.byId("mycontent").innerHTML = html; 
    } 
}); 
IT는 JSP로 파일 내용을 스트리밍합니다. 내 문제는 그것이 반영되지 않은 파일의 내용을 변경할 때입니다. 파이어 폭스의 경우 Ctrl + f5를 사용해야하고 IE의 경우 캐시를 수동으로 지워야합니다. 어떻게 이것을 피할 수 있습니까? 내가 준 것

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
<meta http-equiv="X-UA-Compatible" content="IE=8" /> 
<meta HTTP-EQUIV="Expires" CONTENT="0"/> 
<meta HTTP-EQUIV="Pragma" CONTENT="no-cache"/> 
<meta HTTP-EQUIV="Cache-Control" CONTENT="no-cache"/> 

내 jsp 파일과 html 파일에 있습니다.

+0

이상한 생각은 자바 스크립트와 HTML을 수정할 때 realod 또는 아무것도 필요가 없습니다입니다 ... – Tsadiq

답변

3

두 가지 방법 :

  1. 가 아니라 HTML 헤드에서 HTTP 응답 헤더에 넣어. 메타 태그는 로컬 디스크 파일 시스템에서 파일을 열 때만 해석되며 HTTP로 파일을 가져 오는 경우에는 해석되지 않습니다. Filter은 작업을위한 완벽한 도구입니다. 또한 Cache-Control 설정을 두 번 더 잊어 버렸습니다.

    HttpServletResponse hsr = (HttpServletResponse) response; 
    hsr.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // HTTP 1.1. 
    hsr.setHeader("Pragma", "no-cache"); // HTTP 1.0. 
    hsr.setDateHeader("Expires", 0); // Proxies. 
    chain.doFilter(request, response); 
    

    지도 HTML 파일을 일치 원하는 URL 패턴이 Filter : 여기에 완전한 세트입니다.

  2. 쿼리 문자열에 타임 스탬프를 추가하여 브라우저 캐시를 속입니다.

    var url = dojo.moduleUrl("dijit.form", "<c:url value="/getfile?Name=${fileName}"/>&" + new Date().getTime()); 
    
관련 문제