我知道 Headers 可能听起来很荒谬,但我不知道要解释我的意思:)
我有一个用于编辑实体的表单 . 每个字段都链接到其相关的bean属性,它工作正常 .
我需要做的是在表单字段中显示实体的当前值,以便使编辑更快一些(使用当前值而不是空字段非常有用!)
所以我有了这个edit.xhtml页面,它从get参数中获取ID,并使用辅助bean中的getFromId方法检索实体 .
假设这个实体存储在名为“contact”的var中,我想要这个形式:
<f:view>
<h:form>
<h1><h:outputText value="Edit"/></h1>
<h:panelGrid columns="2">
<h:outputLabel value="Name:" for="name" />
<h:inputText id="name" value="#{contactsMB.name}" title="Name" required="true"/>
<h:outputLabel value="Surname:" for="surname" />
<h:inputText id="surname" value="#{contactsMB.surname}" title="Cognome"/>
<h:outputLabel value="Email:" for="email" />
<h:inputText id="email" value="#{contactsMB.email}" title="Email" required="true"/>
<h:outputLabel value="Number:" for="number" />
<h:inputText id="number" value="#{contactsMB.number}" title="Number" />
<h:inputHidden id="id" value="#{contactsMB.id}"/>
<h:commandButton value="Edit" action="#{contactsMB.editContact}"/>
</h:panelGrid>
</h:form>
</f:view>
但我想在texfields中显示contact var的值 .
因此,例如,第一个inputText必须显示“stefano”作为名称,但必须链接到contactsMB.name .
基本上它就像inputText的默认值一样,这个默认值必须来自一个实体 .
那可能吗?
1 回答
首先,你应该问自己:
Do you really need to do that?
. 如果您正在编辑实体,则应直接利用getter作为该实体的setter . 它可能是这样的:然后,您可以,例如,显示用户的名称,如下所示:
以上
<h:inputText>
将显示用户的当前名称作为默认值 . 当您输入新名称并提交时,User
实体将直接更新 .如果你真的想按照你的解释那样做,你可以将
@PostConstruct
方法更改为: