2014-02-05 3 views
-1

JSP 페이지에서 핸들 바를 사용해야합니다. js 폴더에 handlebars-v1.3.0.js가 있고 jsp 파일을 jsp 페이지에 포함시키기 위해 다음 코드 스 니펫을 사용했습니다.JSP의 핸들 바

코드 :

<script type="text/javascript" src="./js/handlebars-v1.3.0.js"></script> 

는 또한 <script type="text/javascript" src="js/handlebars-v1.3.0.js"></script>을 시도했다. 그러나 운이 없다.

하지만 페이지가로드되면 브라우저 콘솔에 "Hanldebars not defined"오류가 표시됩니다. 내가 뭘 잘못하고 있는지 제안 해주세요. HTML 페이지 안에서 핸들 바를 사용하면 모든 일이 효과가 있습니다.

폴더 구조는 다음과 같습니다.

-WebContent 
    --Home.jsp 

-js 
    --handlebars-v1.3.0.js 

두 가지를 알고 싶습니다. 1.) jsp 파일 안에 js 파일 경로를 지정하는 올바른 방법은 무엇입니까? 2.) jsp는 핸들 바를 지원합니까?

'components'는 다른 js에 정의 된 배열 객체입니다.

내 소스 코드 (Home.jsp) :

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" 
    pageEncoding="ISO-8859-1"%> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<title>My first JSP</title> 

<script type="text/javascript" src="./js/handlebars-v1.3.0.js"></script> 

<script type="text/javascript"> 
    Handlebars.registerHelper('eachByIdx', function(menuData, options) { 

      // My Logic 
    }); 

    var menuSource = document.getElementById("myTemplate").innerHTML; 
    var menuTemplate = Handlebars.compile(menuSource); 
    document.getElementById("div1").innerHTML = menuTemplate(menuData); 
</script> 

</head> 

<body> 
    <form action="Hello" method="post"> 
      <input type="text" value="ajith" /> 
     <script id="myTemplate" type="text/x-handlebars-template"> 
     <table> 

     {{#eachByIdx components}} 
        // My Logic here    
     {{/eachByIdx}} 

     <tr> 
      <td> 
      <a href="" onclick="return popup(this.form)">Add New</a>     
    </td> 
     </tr>   
     </table>  
     </script> 
    </form> 
</body> 
</html> 

답변

0

JSP 파일이있을 수 있기 때문에, JSP 파일 내에서 JS 파일을로드 할 상대 경로를 사용하지 마십시오 : 기본적으로 위치

  • 어디서든 및

대신 다른 장소에서 (예를 들어, 포함) 사용할 수 있음, 절대 페이지를 사용 ath를 JSP 컨텐트가 자동으로 제공되도록 JSP URL-ish 태그를 사용하는 것이 가장 이상적입니다. 절대 경로에 대해서는

+0

: 나는 절대 경로를 시도뿐만 아니라, 아래 그림. 그러나 운이 없다. URL 형식 태그에 대한 샘플 코드를 알려주세요. 나는이 jsp와 모두에 아주 새롭다. –

0
  1. , $를 시도 {pageContext.request.contextPath}는
  2. 예, 바닥에 스크립트 코드를 이동하십시오 /js/handlebars-v1.3.0.js, 당신은 사용에서 getElementById를 시도되지만, 페이지로드가 완료되지 않았습니다.

샘플 아래 참조하십시오

데이브 @
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<script src="${pageContext.request.contextPath}/js/handlebars-v1.3.0.js"></script> 
</head> 

<body> 
    <form action="Hello" method="post"> 
     <input type="text" value="ajith" /> 
     <div id="div1"></div> 
    </form> 

<script id="myTemplate" type="text/x-handlebars-template"> 
    <table> 
     {{#eachByIdx components}} 
        // My Logic here 
     {{/eachByIdx}} 
     <tr> 
      <td> 
      <a href="" onclick="return popup(this.form)">Add New</a> 
      </td> 
     </tr>   
    </table>  
</script> 
<script type="text/javascript"> 
    Handlebars.registerHelper('eachByIdx', function(menuData, options) { 
      //My Logic 
    }); 

    var menuSource = document.getElementById("myTemplate").innerHTML; 
    var menuTemplate = Handlebars.compile(menuSource); 
    document.getElementById("div1").innerHTML = menuTemplate(menuTemplate); 
</script> 
</body> 
</html>