使用javascript重新加载JSF标记

时间:2014-10-07 17:46:16

标签: javascript jquery ajax jsf jsf-2

我需要在按键时重新加载JSF组件,我有以下代码

<script>
    document.onkeypress=teclaPulsada
    function teclaPulsada()
    {
    var teclaASCII=event.keyCode
    var teclaCHAR=String.fromCharCode(teclaASCII)
    if (teclaASCII==49 )
    {   
    document.getElementById("formularioImagen").setAttribute("value", "TiffBean.getImagen()")
    }
    else if ( teclaASCII==50)
    {
    alert("disminuir")
    }
    }
</script>
<h:form id="formularioImagen">
        <p:graphicImage  id="imagen" value="#{TiffBean.getImagen()}" width="1000" height="1500" border="5" cache="FALSE" >
        </p:graphicImage>
</h:form>

当我运行图片时没有重新加载

3 个答案:

答案 0 :(得分:1)

您需要“重新渲染”graphicImage组件或其父级之一。一种简单的方法是添加

<p:commandButton id="hiddenBtn" update="formularioImagen:imagen" style="visibility: hidden"/> 

到表单并选择Javascript并在单击键时单击按钮

答案 1 :(得分:1)

您可以使用p:remoteCommand

<p:remoteCommand name="refreshImage" process="@this" update="formularioImagen:imagen"/>

在您的javascript代码中,您可以执行以下操作:

if (teclaASCII == 49)
{   
    refreshImage();
}

答案 2 :(得分:0)

使用Primefaces hotkey。它是专门为此而建的。在你的情况下:

<h:form id="formularioImagen">
    <p:graphicImage  id="imagen" value="#{TiffBean.getImagen()}" width="1000" height="1500" border="5" cache="FALSE" >
    </p:graphicImage>
    <p:hotkey bind="ctrl+shift+s" update="imagen"/>
</h:form>