通过a4j:jsFunction 调用原生的javascript方法,并且共享和传递后台bean里面的变量

<ui:composition xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core" xmlns:a4j="http://richfaces.org/a4j" xmlns:rich="http://richfaces.org/rich"> <mce:script type="text/javascript"><!-- function showContent(data) { alert(data); } // --></mce:script> <table width="400"> <tbody> <tr> <td><span onmouseover="updateName('Kate')" onmouseout="updateName('')">Kate</span></td> <td><span onmouseover="updateName('John')" onmouseout="updateName('')">John</span></td> <td><span onmouseover="updateName('Alex')" onmouseout="updateName('')">Alex</span></td> </tr> <rich:spacer height="10" /> <tr> <td colspan="3">Name: <b><h:outputText id="showname" value="#{detailQueryBean.selectedRange}" /></b></td> </tr> </tbody> </table> <a4j:form> <a4j:jsFunction name="updateName" reRender="showname" oncomplete="javascript:showContent('#{detailQueryBean.selectedRange}');"> <a4j:actionparam name="param1" assignTo="#{detailQueryBean.selectedRange}" /> </a4j:jsFunction> </a4j:form> <br /> </ui:composition>

其他情况:

1.如果需要一个界面操作先调用后台bean,然后在调用javascript。

可以采用这种思路。在<a4j:support event="onRowClick"   actionListener="#{detailQueryBean.onSelectionInMacro}"      oncomplete="callScript()"       reRender="middleResultTable" /> 中加入oncomplete属性。这样调用好后台的bean中的onSelectionInMacro 方法后,就会继续调用下面的jsFunction了

<a4j:form> <a4j:jsFunction name="callScript" oncomplete="javascript:showContent('爱上地方');" /> </a4j:form>

你可能感兴趣的:(JavaScript,UI,bean,function,table)