2012-01-13 86 views
0

我有一个按钮的组合,我希望能够传递一个oncomplete字符串到该按钮。如何将EL函数调用传递给复合属性?

<composite:attribute name="oncomplete"/> 

<h:commandButton oncomplete="#{cc.attrs.oncomplete}"/> 

现在我想传递一个EL函数调用,它将一个Javascript对象解析为这个未完成的字段。

<comp:composite oncomplete="#{p:widgetVar('dlgUserAdd')}.hide();"> 

#{p:widgetVar('dlgUserAdd')} //returns a Javascript Object. 

但是这会导致一个例外:

com.sun.el.lang.FunctionMapperImpl java.lang.ClassNotFoundException: com.sun.el.lang.FunctionMapperImpl 
at java.net.URLClassLoader$1.run(URLClassLoader.java:202) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
at org.glassfish.web.loader.WebappClassLoader.findClass(WebappClassLoader.java:959) 
at org.glassfish.web.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1430) 
at java.lang.Class.forName0(Native Method) 
at java.lang.Class.forName(Class.java:247) 

这在这里工作,但不是我想做的事:

<comp:composite oncomplete="dlgUserAdd.hide();"> 

回答

0
<script type="text/javascript"> 
    function hideWidget(widget){ 
    widget.hide(); 
    } 
</script> 

<comp:composite oncomplete="hideWidget(#{p:widgetVar('dlgUserAdd')})" /> 
+0

这看起来很丑陋。复合实现站点需要知道这个功能,即使它不可见,或者复合实现站点和实现站点都需要知道它!任何人都有一个想法? – djmj 2012-01-20 12:58:52

相关问题