使用EL语句读取值时,设置输入字段的默认值

Evo*_*510 5 jsf el

所以我的团队有一个jsf并且我们使用EL语句读取输入框的值,工作正常,但默认情况下我们将值设置为应填入字段的值.如何在仍然使EL语句工作的同时为输入设置默认值.例:

 <h:inputText value="#{registrationBean.firstName}" styleClass="formEle"/>
Run Code Online (Sandbox Code Playgroud)

我试过了

<h:inputText value="#{registrationBean.firstName}First Name" styleClass="formEle"/>
Run Code Online (Sandbox Code Playgroud)

但是当我们提交时,这会破坏连接.有任何想法吗?

Bal*_*usC 14

你正在寻找一种被称为"水印"或"占位符"的东西.在低级别,这些天通常由HTML5 placeholder属性完成:

<input type="text" placeholder="First Name" />
Run Code Online (Sandbox Code Playgroud)

这当然仅适用于支持HTML5的浏览器,然后仅适用于支持新HTML5属性的JSF组件.标准的JSF <h:inputText>本身不支持这个(尚未).您需要寻找支持此功能的第三方组件库.其中包括PrimeFaces <p:watermark>:

<h:inputText id="firstName" value="#{registrationBean.firstName}" />  
<p:watermark for="firstName" value="First Name" />  
Run Code Online (Sandbox Code Playgroud)

如果由于某种原因使用PrimeFaces不是一个选项,你需要自己重新发明它自定义组件和/或自定义JS/jQuery的味道,就像<p:watermark>在幕后做的那样.