如果我们这样做:<h:inputText id="name" value="#{customer.name}" />
,那么如果我理解正确,inputText可以在客户中为name指定一个值。这个值赋值在代码中是如何形状的:
从我发现的,它转到inputText bean并且有setXXX和getXXX方法,但是bean或上层如何知道从上面的表达式中区分它们中的每一个?
我错过了这两个级别之间的阶段。我阅读了关于EL的Oracle教程,但它没有提到如何为现有表达式赋值。我还阅读了<c:set
标记,但我没有看到为表达式赋值的任何地方。
编辑:为了更准确,我对jsf input_text bean如何为#{customer.name}
分配值感兴趣。所以我发现它必须做这样的事情以支持延迟表达式:
private javax.el.ValueExpression attributeName = null;
public void setAttributeName(
javax.el.ValueExpression attributeName)
{
this.attributeName = attributeName;
}
现在我的猜测就是有一些听众,就像attributeName.set(somehowGetContext(),whateverTheValueInInputTextBoxWasChangedTo)
那样。 有人可以确认并告诉我这是我在开发自己的豆子时应该做的吗?