ExtJs 与 Liferay集成的问题

在一个简单的应用上,我尝试了在Liferay项目上使用ExtJs,然而出乎意料的是,页面总是报属性不被支持,也搜索过类似的报错问题,但都不能解决,网页上有朋友遇到属性不被支持是因为页面的body内有不在标签内的字符串,但排除这个问题后还是用不了Ext的东西,


贴上一个简单不能再简单的代码,ext的source code  放在liferay项目的/html/js下:

   


<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<link rel="stylesheet" type="text/css" href="./ext/resources/css/ext-all.css">

<script type="text/javascript" src="./ext/adapter/ext/ext-base.js"></script>

<script type="text/javascript" src="./ext/ext-all-debug.js"></script>

<title>A xxxxx</title>

</head>
<script type="text/javascript">

ExtJsCustom = function(){

             Ext.MessageBox.confirm("DCMS","Do you want to override,are you sure?",function(btn){
                alert("1233");
            });

}
</script>
<body>

<input type="button" value="Animal" id="fly" onclick="ExtJsCustom();"/>
</body>




引用路径不存在问题,在Liferay项目上就是用不了,是否还需要别的配置,还请用过的大牛们指点,thanks!

2个回答

我刚才测试了一下,可以使用extjs 4,liferay 6.0.6+
说一下我的方法:
1、将extjs的资源拷贝到portlet项目的docroot/js中
2、参考如下测试代码
[code="html"]
<%@page import="com.liferay.portal.kernel.util.WebKeys"%>
<%@page import="com.liferay.portal.model.Portlet"%>
<%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet" %>

<%
Portlet portlet = (Portlet)request.getAttribute(WebKeys.RENDER_PORTLET);
%>

Portal引用资源跟普通的jsp不一样,需要加上contextPath,而且为了避免对象冲突,最好给js调用的对象加上namespace,例如:
portlet:namespace/MyText');

而且你这样写也不规范啊,portlet是没有body的,直接作为html的片段被解析上去的。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!