在我的 Web 应用程序中,我无法使用单个验证器获取查询参数的键值。
我的网页:
<f:metadata>
<f:viewParam name="version" value="#{myBean.version}"
validator="#{myBean.inputValidator}" />
<f:viewParam name="mobilemodel" value="#{myBean.mobileModel}"
validator="#{myBean.inputValidator}" />
<f:event listener="#{myBean.preRenderViewEventHandler}"
type="preRenderView" />
</f:metadata>
我验证组件的函数:
public void inputValidator(FacesContext context, UIComponent component, Object value) throws ValidatorException {
LOG.debug("Component: " + component);
LOG.debug("Value: " + value);
}
我在UIComponent
中找不到键值(例如版本)
一个工作正常的解决方案是为每个查询参数提供一个验证器函数。有没有办法理解参数的名称?
下一个问题:是否可以跳过所有验证器并将值设置为 myBean?我试过了,但值没有在myBean.mobileModel
您可以通过UIComponent#getAttributes()
获取所有组件属性。
所以,这应该可以:
String name = (String) component.getAttributes().get("name");
// ...