Jquery 包含的javascript文件中的liferay资源
当我使用此选项时:Jquery 包含的javascript文件中的liferay资源,jquery,ajax,liferay,portlet,spring-portlet-mvc,Jquery,Ajax,Liferay,Portlet,Spring Portlet Mvc,当我使用此选项时: <portlet:resourceURL var="ajaxURL" id="ajax" escapeXml="false" /> $.ajax({ method : "POST", url : "${ajaxURL}", data : { ... 我的问题是如何将资源url传递给包含的javascript,或者如何在javascript中生成它 我试过: var urlVar='' 当我以这种方式使用url
<portlet:resourceURL var="ajaxURL" id="ajax" escapeXml="false" />
$.ajax({
method : "POST",
url : "${ajaxURL}",
data : {
...
我的问题是如何将资源url传递给包含的javascript,或者如何在javascript中生成它
我试过:
var urlVar=''
当我以这种方式使用urlVar时:
$.ajax({
method : "POST",
url : urlVar,
data : {
...
它不起作用。有人知道如何解决这个问题吗?谢谢我可以为您想出两个选择 要在JavaScript文件中使用JSP标记和EL,需要从JSP提供服务。我以前在portlet中通过使用
serveResource
方法为JavaScript文件提供服务来实现这一点。这样,您就可以在JavaScript JSP中使用相同的portlet标记
在portlet JSP中
<portlet:resourceURL var='portletJS' id='javascriptResourceID' />
<script type='text/javascript' src='${portletJS'></script>
<script type='text/javascript'>
var portletAjaxURL = '<portlet:resourceURL id="ajax" escapeXml="false" />';
</script>
另一个选项是在portlet中设置JavaScript变量,然后在静态JavaScript文件中使用该变量
在portlet JSP中
<portlet:resourceURL var='portletJS' id='javascriptResourceID' />
<script type='text/javascript' src='${portletJS'></script>
<script type='text/javascript'>
var portletAjaxURL = '<portlet:resourceURL id="ajax" escapeXml="false" />';
</script>
我可以为你想出两个选择 要在JavaScript文件中使用JSP标记和EL,需要从JSP提供服务。我以前在portlet中通过使用
serveResource
方法为JavaScript文件提供服务来实现这一点。这样,您就可以在JavaScript JSP中使用相同的portlet标记
在portlet JSP中
<portlet:resourceURL var='portletJS' id='javascriptResourceID' />
<script type='text/javascript' src='${portletJS'></script>
<script type='text/javascript'>
var portletAjaxURL = '<portlet:resourceURL id="ajax" escapeXml="false" />';
</script>
另一个选项是在portlet中设置JavaScript变量,然后在静态JavaScript文件中使用该变量
在portlet JSP中
<portlet:resourceURL var='portletJS' id='javascriptResourceID' />
<script type='text/javascript' src='${portletJS'></script>
<script type='text/javascript'>
var portletAjaxURL = '<portlet:resourceURL id="ajax" escapeXml="false" />';
</script>
我找到了解决办法。一种方法是在jsp页面上定义资源url,例如:
<portlet:resourceURL var="yourResourceURL" id="yourResource" />
test(" ${yourResourceURL} ");
在jsp中,调用如下函数:
<portlet:resourceURL var="yourResourceURL" id="yourResource" />
test(" ${yourResourceURL} ");
它应该会起作用。我找到了解决办法。一种方法是在jsp页面上定义资源url,例如:
<portlet:resourceURL var="yourResourceURL" id="yourResource" />
test(" ${yourResourceURL} ");
在jsp中,调用如下函数:
<portlet:resourceURL var="yourResourceURL" id="yourResource" />
test(" ${yourResourceURL} ");
它应该可以工作。您可以使用java脚本生成resourceURL
var resourceURL = Liferay.PortletURL.createResourceURL();
resourceURL.setPortletId(86);
resourceURL .setParameter("key2", "value");
resourceURL.toString();
您可以使用java脚本生成resourceURL
var resourceURL = Liferay.PortletURL.createResourceURL();
resourceURL.setPortletId(86);
resourceURL .setParameter("key2", "value");
resourceURL.toString();
假设它是一个jsp页面try url:“我想你也可以直接做。例如url:”,我测试了两个命题,但它们都不起作用。假设它是一个jsp页面try url:“我想你也可以直接做。例如url:”,我测试了两个命题,但它们都不起作用。我还没有测试第一个方法,但第二种方法不起作用,因为javascript变量的作用域范围。因为如果您在脚本标记中声明portletAjaxUrl,然后在这些标记后面导入其他javascript代码,它将无法使用该变量。javascript变量并不局限于声明它们的标记或javascript文件。在标记中,该变量声明将变量放入全局范围,使其在页面上的任何其他位置或其他JS文件或标记中都可用。您可以发布完整的工作示例吗?我还没有测试第一种方法,但第二种方法不起作用,因为javascript变量的作用域范围。因为如果您在脚本标记中声明portletAjaxUrl,然后在这些标记后面导入其他javascript代码,它将无法使用该变量。javascript变量并不局限于声明它们的标记或javascript文件。在标记中,该变量声明将变量放入全局范围,使其在页面上的任何其他位置或其他JS文件或标记中都可用。您可以发布完整的工作示例吗?我不能让它工作。