最近使用oracle workshop for weblogic开发porlet
使用dojo作为js框架,但是dojo在引入的时候有点问题因为有个初始变量要设置
djConfig = {parseOnLoad:true, isDebug:true};
因为要把dojo框架放到look and feel的skin.xml当中,因此不能像以前那样写:
<script src='<portal-logic:urlFindInTheme file="dojo/dojo/dojo.js" />' djConfig="parseOnLoad: true"></script>
需要换一种方式,更改如下
根据weblogic portal中把js引入的skin.xml标签,改写如下
<ns:script type="text/javascript">
var djConfig = {parseOnLoad:true, isDebug:true};
</ns:script>
<ns:script charset="" src="dojo/dojo.js" type="text/javascript"/>
如果只需要在单个portlet中引入,也可以参考写类似的配置。
测试通过
另外在weblogic portal中引入了dojo的主题样式以后,有可能在使用过程中发现有些样式没有生效
<ns:link charset="" href="js/dijit/themes/hneiac/hneiac.css" rel="stylesheet" type="text/css"/>
其实dojo主题在应用的时候需要在body标签当中写入class
<body class="nihilo">
但是在weblogic portal中使用的时候,会默认从look and feel中设置把body标签的class属性为:
bea-portal-body
因此造成dojo样式变化,测试中发现dijit.Dialog背景完全没有显示出来
要使dojo样式生效有很多方法
比如通过js来改变
document.body.className = 'nihilo'
document.body.className = 'bea-portal-body
nihilo'
使用定制dojo主题也可以实现
复制一个主题,如:nihilo,把里面的css文件的nihilo全部替换成bea-portal-body也可以达到目的