是否可以在jsf2中的h:form中添加javascript函数?

时间:2016-01-15 18:28:58

标签: javascript jsf-2

我想在服务器端向h:form添加一个javascript函数,以便稍后在客户端调用它。

我用

<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:composite="http://java.sun.com/jsf/composite">

并试过“onload”,就像这样

<h:form onload="this.myfunc=function(){alert('Hello world');}" ...

但根据文档,h:form没有“onload”。

目的是拥有一个包含h:form的复合,以及一个使用此复合的页面,并包含一些javascript代码,用于准备和触发复合上的ajax调用。页面应该只调用myfunc,并且不需要知道复合对调用的作用,因此复合可能会更改而无需更改页面。

编辑:复合材料看起来像

<composite:interface>
    <composite:attribute name="imgId" required="true" />
    <composite:attribute name="flav" default="r" />
    <composite:attribute name="width" default="472" />
</composite:interface>

<composite:implementation>
    <h:form id="${cc.attrs.imgId}" styleClass="small">
        <f:event type="postAddToView" listener="#{mBean.register}" />
        <f:attribute name="myId" value="hmta${cc.attrs.imgId}" />
        <h:graphicImage width="${cc.attrs.width}" id="${cc.attrs.imgId}"
            onclick="this.nextSibling.value=mods(event)" onmouseover="aa=this.id"
            value="images/img?#{cc.attrs.flav}=#{Math.random()}">
            <f:ajax event="click" execute="@this k"
                listener="#{mBean.handleEvent}" render="@this">
            </f:ajax>
        </h:graphicImage>
        <h:inputHidden id="k" value="#{mBean.keyX}" />
    </h:form>
</composite:implementation>

Edit2:每页通常会多次使用复合。

0 个答案:

没有答案