将JS变量发送到ManagedBean JSF2 + PrimeFaces

时间:2017-07-25 09:16:36

标签: javascript primefaces jsf-2.2

我需要将一个JS变量发送到我的ManagedBean并在我的ManagedBean中的一个函数中使用它,我正在使用JSF2和PrimeFaces 6.

Code Js& .Xhtml:

<script type="text/javascript">
 timezone = jstz.determine();
 var myLocalZone =timezone.name(); // myLocalZone = "Europe/Paris"
</script>

<p:column headerText="blabla" width="125">
<h:outputText value="#{myBean.date}">
<f:convertDateTime type="both" timeZone="#{myBean.TimeZone}">  </f:convertDateTime>
</h:outputText>

ManagedBean

public void getCurrentTimezoneOffset() {

    TimeZone tz = TimeZone.getTimeZone("I need To Use My Js variable Here");

    Calendar cal = GregorianCalendar.getInstance(tz);
    int offsetInMillis = (tz.getOffset(cal.getTimeInMillis()) * 2);

    String offset = String.format("%02d", Math.abs(offsetInMillis / 3600000));
    offset = (offsetInMillis >= 0 ? "+" : "-") + offset;

    TimeZone = "GMT" + offset;

}

编辑:

我试过RemoteCommand但我不知道为什么不能为我工作!!

    function customfunction() {
increment([{name:'x', value:10}, {name:'y', value:20}]);
}
</script>

我不知道我应该在哪里制作remoteCommand,所以我在表格的第一行添加了它!

<p:remoteCommand name="increment" actionListener="#{MyBean.increment}"/>        

在我的Bean中我有:

public void increment() {
    Map<String, String> params = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap();
    String x = params.get("x");
    String y = params.get("y");
    System.out.println("X " + x + " Y " + y);
}

注意:我只需要刷新我的页面并在我的豆中获取x和y ..

如果您有解决方案或建议来解决此问题。 感谢

0 个答案:

没有答案