我对 JSF 有点submittedValue
困惑value
。出现转换器/验证错误时会呈现哪个值?
从 BalusC 在上述问题中的回答中,我可以找到答案。但是,我想知道这个渲染逻辑存在于哪个类中,当提交的值为空时,模型值被渲染。是哪个班?
我对 JSF 有点submittedValue
困惑value
。出现转换器/验证错误时会呈现哪个值?
从 BalusC 在上述问题中的回答中,我可以找到答案。但是,我想知道这个渲染逻辑存在于哪个类中,当提交的值为空时,模型值被渲染。是哪个班?
我想知道这个渲染逻辑存在于哪个类中,当提交的值为空时渲染模型值
您没有告诉任何地方有关正在使用的 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 使用类似的方法。