2013-08-13 3 views
1

포함되어 있습니다.을 Liferay 자원은 자바 스크립트 파일

WARN [http-bio-8080-exec-27][404_jsp:109] /$%7BajaxURL%7D 

내 질문은 자바 스크립트 방법이나 자바 스크립트 내에서 발생하는을 포함하기 위해 해당 자원의 URL을 전달하는 방법입니다 : 내가 페이지에 동일한에 javscript 코드를 포함 할 때

는하지만 난 오류가 발생합니다. var urlVar = '<portlet:resourceURL var="ajaxURL" id="ajax" escapeXml="false" />'

을 그리고 난이 방법에 urlVar를 사용할 때 : :

내가 시도

$.ajax({ 
method : "POST", 
    url : urlVar, 
    data : { 
... 

그것은 작품을 나던. 누구든지이 문제를 해결하는 방법을 알고 있습니까? 감사합니다

+0

를 사용하여 resourceURL을 생성 할 수 있습니다 : "<%=ajaxURL%>는" –

+0

난 당신이 well.ie로 직접 URL을 그것을 할 수 같아요 '<포틀릿 : resourceURL var에 = "ajaxURL"id = "ajax"/> ', –

+0

두 제안을 모두 테스트했지만 불행히도 작동하지 않습니다. –

답변

0

파일. 이 일을하는 한 가지 방법은 다음과 같은 예를 들어 JSP 페이지에 자원 URL을 정의하는 것입니다 :

<portlet:resourceURL var="yourResourceURL" id="yourResource" /> 

및 외부 JS 파일에있는 함수에 있었던 파라미터 내에서 JSP에서 그것을 전달합니다. JS 예를 들면

이 같은 기능을

function test(urlVar) { 
    alert(urlVar); 
     $.ajax({ 
      method : "POST", 
      url : urlVar, 
      success : function(data) { 

      } 
     }); 
} 

와의 JSP 전화 :

test(" ${yourResourceURL} "); 

하고 작동합니다.

0

나는 두 가지 옵션을 생각할 수 있습니다.

JavaScript 파일에서 JSP 태그와 EL을 사용하려면 JSP에서 제공해야합니다. 이전에 포틀릿에서 serveResource 메소드를 사용하여 JavaScript 파일을 제공했습니다. 이렇게하면 JavaScript JSP에서 동일한 포틀릿 태그를 사용할 수 있습니다. 포틀릿 포틀릿의 serveResource 방법에서

<portlet:resourceURL var='portletJS' id='javascriptResourceID' /> 
<script type='text/javascript' src='${portletJS'></script> 

JSP

에서

.

if (request.getResourceID == "javascriptResourceID) { 
    //render JSP for JavaScript 
} 

다른 옵션은 포틀릿에 JavaScript 변수를 설정 한 다음 정적 JavaScript 파일에서 해당 변수를 사용하는 것입니다. 정적 자바 스크립트에서 포틀릿

<script type='text/javascript'> 
    var portletAjaxURL = '<portlet:resourceURL id="ajax" escapeXml="false" />'; 
</script> 

JSP

에서

내가 해결책을 발견

$.ajax({ 
    method : "POST", 
    url : portletAjaxURL, 
    data : { 
    ... 
+0

아직 첫 번째 방법은 테스트하지 않았지만 두 번째 방법은 javascript 변수 범위로 인해 작동하지 않습니다. 스크립트 태그에 portletAjaxUrl을 선언하고 나중에 해당 태그 뒤에 다른 자바 스크립트 코드를 가져 오는 경우 해당 변수를 소비 할 수 없기 때문입니다. –

+0

JavaScript 변수는 선언 된