如何使用MDS自定义添加JSTL函数标记库?

时间:2013-11-06 19:27:53

标签: oracle-adf portal webcenter

我将JSTL函数标记库添加到WebCenter Portal 11.1.1.6.0 folderViewer任务流(oracle.webcenter.doclib.view.jsf.taskflows.folderViewer)中的folderViewer.jsff视图中,以便我可以执行字符串操作在渲染视图之前。

我在folderViewer.jsff.xml MDS自定义文件中使用以下mds:modify block添加了它:

<mds:modify element="(xmlns(jsp=http://java.sun.com/JSP/Page))/jsp:root">
  <mds:attribute name="version" value="2.1"/>
  <mds:attribute name="xmlns:fn" value="http://java.sun.com/jsp/jstl/functions"/>
</mds:modify>

这允许我在EL语句中使用JSTL函数,例如:startFolderPath=#{fn:replace(fn:substringAfter(item.url,'path'),'%20','%2520')}

但是,在folderViewer任务流中似乎存在意外的副作用。当文件夹中有超过50个子文件夹时,滚动浏览第50个子文件夹并尝试导航到其中一个子文件夹(即导航到子文件夹#51)会导致显示WebCenter错误页面并在日志中出现以下错误:

<Oct 28, 2013 3:10:54 PM CDT> <Error>     <oracle.webcenter.webcenterapp.internal.view.webapp> <BEA-000000> <
oracle.mds.exception.MDSRuntimeException: invalid namespace http://java.sun.com/JSP/Page for prefix xmlns
invalid namespace http://java.sun.com/JSP/Page for prefix xmlns
    at oracle.mds.core.MOTxnState.getDocument(MOTxnState.java:266)
    at oracle.mds.core.UpdateableMOContent.getDocument(UpdateableMOContent.java:561)
    at oracle.mds.core.MetadataObject.getDocument(MetadataObject.java:449)
    at oracle.mds.core.MetadataObject.getDocument(MetadataObject.java:396)
...
    at     weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2179)
    at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1490)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)
>
<Oct 28, 2013 3:10:54 PM CDT> <Error> <oracle.webcenter.webcenterapp> <BEA-000000>      <Internal Error (WCS#2013.10.28.15.10.54)>

如果我删除了添加JSTL Functions标记库的folderViewer.jsff.xml的MDS自定义,则此问题不存在。

有没有人知道通过MDS自定义添加新标签库的不同方法?

谢谢, 乔

1 个答案:

答案 0 :(得分:0)

似乎它试图给出前缀xmlns而不是JSP

我只是想知道你是否将上面的代码更改为以下内容,将会发生什么

<mds:modify element="jsp:root">
  <mds:attribute name="version" value="2.1"/>
  <mds:attribute name="xmlns:jsp" value="http://java.sun.com/JSP/Page"/>
  <mds:attribute name="xmlns:fn" value="http://java.sun.com/jsp/jstl/functions"/>
</mds:modify>