将参数从 javascript 传递到 managedbean

Passing a parameter from javascript to managedbean

本文关键字:managedbean javascript 参数      更新时间:2023-09-26

我在 jsf 页面的 javascript 中有一个变量,我想在我的托管 bean 中获取这个变量。你知道我该怎么做吗?

这可能不是最好的解决方案,但我过去做过类似的事情:

在受管 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);