Jsf 为什么只在inputText值表达式上调用getter? 名字: 姓氏: 国家:

Jsf 为什么只在inputText值表达式上调用getter? 名字: 姓氏: 国家:,jsf,el,Jsf,El,在这段代码中,“{studentFormBean.fname}”应该指向studentFormBean.java中的setFname(),但它指向getFname()。为什么会发生这种情况?我如何解决它?{studentFormBean.fname}如果在可编辑的值保持器(如h:inputText中使用,则会同时使用getter和setter。渲染输入时,它将获取当前值。提交for(且验证和转换已通过)时,它将设置提交的 另见: 我认为setter将在验证阶段被调用,即使在验证失败时不会更新

在这段代码中,
“{studentFormBean.fname}”
应该指向
studentFormBean.java中的
setFname()
,但它指向
getFname()
。为什么会发生这种情况?我如何解决它?

{studentFormBean.fname}
如果在可编辑的值保持器(如
h:inputText
中使用,则会同时使用getter和setter。渲染输入时,它将获取当前值。提交for(且验证和转换已通过)时,它将设置提交的

另见:


我认为setter将在验证阶段被调用,即使在验证失败时不会更新模型。
<h:form>
    First Name: <h:inputText value="#{studentFormBean.fname}" /> <br/><br/>
    Last Name: <h:inputText value="#{studentFormBean.lname}" /> <br/><br/>
    Country : 
    <h:selectOneMenu value="#{studentBean.country}">
        <f:selectItem itemValue="Brazil" itemLabel="Brazil" />
        <f:selectItem itemValue="US" itemLabel="US" />
        <f:selectItem itemValue="UK" itemLabel="UK" />
        <f:selectItem itemValue="Myanmar" itemLabel="Myanmar" />
    </h:selectOneMenu>
    <h:commandButton value="Submit" action="FormResponse"/>
</h:form>