JavaScript函数在启动时加载并将参数传递给托管bean



我想在window.onload上加载javascript函数,该功能将其参数传递给托管的bean。

没有命令button。

JS:

window.onload = function getVars() {
    // ...
    var x = locationInfo.lng; 
    var y = locationInfo.lat;
    document.getElementById("formId:x").value = x;
    document.getElementById("formId:y").value = y;
}

xhtml:

<h:form id="formId">
    <h:inputHidden id="x" value="#{bean.x}" />
    <h:inputHidden id="y" value="#{bean.y}" />
</h:form>

托管bean是带有getters和setters的常规托管bean。

如果不单击命令button,此代码无法正常工作。

是否可以使用JavaScript加载参数并将其传递给JSF?

您可以使用remotecommand进行。

<p:remoteCommand name="sendArgs" actionListener="#{mybean.rcvArgs()}" partialSubmit="true" process="@this"/>

并进行JavaScript调用

sendArgs([
            {name: 'xval', value: locationInfo.lng},
            {name: 'yval', value: locationInfo.lat}
        ]);

在mybean中,您必须从参数列表中获取参数

public void rcvArgs() {
    Map<String, String> pmap;
    pmap = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap();
    String xval = pmap.get("xval");
    String yval = pmap.get("yval");

相关内容

  • 没有找到相关文章

最新更新