1

我对 JSF 有点submittedValue困惑value。出现转换器/验证错误时会呈现哪个值?

Jsf 生命周期 - 验证失败后渲染响应

从 BalusC 在上述问题中的回答中,我可以找到答案。但是,我想知道这个渲染逻辑存在于哪个类中,当提交的值为空时,模型值被渲染。是哪个班?

4

1 回答 1

1

我想知道这个渲染逻辑存在于哪个类中,当提交的值为空时渲染模型值

您没有告诉任何地方有关正在使用的 JSF 实现的信息。在这个答案中,我假设它是 Mojarra。在这种情况下,它在HtmlBasicRenderer#getCurrentValue(). 这是来自 Mojarra 1.2_15 的相关性摘录。

275    protected String getCurrentValue(FacesContext context,
276                                     UIComponent component) {
277
278        if (component instanceof UIInput) {
279            Object submittedValue = ((UIInput) component).getSubmittedValue();
280            if (submittedValue != null) {
281                // may not be a String...
282                return submittedValue.toString();
283            }
284        }
285
286        String currentValue = null;
287        Object currentObj = getValue(component);
288        if (currentObj != null) {
289            currentValue = getFormattedValue(context, component, currentObj);
290        }
291        return currentValue;
292
293    }

代码不言自明。如果组件是 的实例UIInput,则获取其提交的值。如果不是null,则将其退回。否则,只需继续以通常的方式返回模型值。

MyFaces 使用类似的方法。

于 2013-07-16T11:13:48.577 回答