让我们先解释一下为什么您尝试的选项不起作用:
选项1和2无效,因为它返回values(!!)作为a
String[],而不是单个值as
String。
如果参数在那里,则选项3应该起作用。但这不是JSF式的好方法。
选项4无效,因为未在请求标头中设置参数。
选项5无效,因为它根本没有意义。您只是添加了一个额外的抽象层,而在这两个抽象层之间实际上并没有改变任何内容。
类似于JSF的方式是使用
ExternalContext#getRequestParameterMap():
Map<String, String> parameterMap = (Map<String, String>) externalContext.getRequestParameterMap();String param = parameterMap.get("paramName");至于为什么选项3不起作用的原因很可能是参数名不是您认为/期望的那样。JSF即根据
UINamingContainer视图树中的父组件添加(木料)客户ID
。右键单击Web浏览器中JSF页面的生成的HTML输出,然后选择 查看源 。检查所生成
<input>的感兴趣元素的名称。使用 该
名称作为参数名称。
也就是说,这毕竟是解决方法,而不是解决方案。但是由于功能要求和代码尚不完全清楚,我们无法合理地建议 真正的
解决方案。您通常将输入元素绑定到支持bean。如果您在不同的后台bean里面实际上是,那么你也可以只访问 是
从后台bean内支持bean,然后依次访问的输入值与它的约束。有关如何操作,请参见相互注入托管Bean。



