我需要将一个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 ..
如果您有解决方案或建议来解决此问题。 感谢