2014-12-27 83 views
0

我在jsf页面的javascript中有一个变量,我想在托管bean中获取这个变量。 你有什么想法我可以做到吗?将参数从javascript传递到managedbean

+1

有某些特殊的方法可以做到这一点,但如果你表现出精确的情况下潜伏在ÿ我们的应用程序可能有完全不同的方式来实现这一点,根本不使用单一的JavaScript函数。 – Tiny 2014-12-27 18:48:11

回答

0

这可能不是最好的解决办法,但我已经做了,在过去类似的东西:

在您的托管bean(的.java),您可以通过访问您的前端元素:

Map<String, String> parameters = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap(); 

for (Entry<String, String> formElement : parameters.entrySet()) { 
     String elementName = formElement.getKey(); 
     if (elementName != null && //some other qualifier, for instance if the elementName starts with some pre-defined value) { 
      String elementValue = formElement.getValue(); 
      //Set the variable in the backend 

     } 
} 

而在你的.js,你可以为变量,你想从你的托管bean访问创建一个元素:

formElement = document.createElement('input'); 
formElement.type = 'hidden'; 
formElement.name = someName; 
formElement.id = someId; 
$(document.getElementById('spanId or divId')).append(formElement);