Как передать вызов функции EL в составной атрибут? - PullRequest
0 голосов
/ 13 января 2012

У меня есть составной элемент с кнопкой, и я хочу иметь возможность передавать строку незавершенного на эту кнопку.

<composite:attribute name="oncomplete"/>

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

Теперь я хочу передать вызов функции EL, которая разрешает объект Javascript в этотПоле oncomplete.

<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();">

1 Ответ

0 голосов
/ 13 января 2012
<script type="text/javascript">
  function hideWidget(widget){
    widget.hide();
  }
</script>

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