5

したがって、私のチームにはjsfがあり、ELステートメントを使用して入力ボックスの値を読み取ります。これは正常に機能しますが、デフォルトでは、フィールドに入力する値として値が設定されています。ELステートメントを機能させたまま、入力のデフォルト値を設定するにはどうすればよいですか。例:

 <h:inputText value="#{registrationBean.firstName}" styleClass="formEle"/>

私は試した

<h:inputText value="#{registrationBean.firstName}First Name" styleClass="formEle"/>

しかし、これは私たちが提出するときに接続を切断します。何か案は?

4

4 に答える 4

14

「透かし」または「プレースホルダー」と呼ばれるものを探しています。低レベルでは、最近、これは通常HTML5placeholder属性によって実行されます。

<input type="text" placeholder="First Name" />

もちろん、これはHTML5をサポートするブラウザーでのみ機能し、新しいHTML5属性をサポートするJSFコンポーネントでのみ機能します。標準のJSF<h:inputText>はこれをネイティブにサポートしていません(まだ)。これをサポートするサードパーティのコンポーネントライブラリを探す必要があります。それらの中には、PrimeFacesがあります<p:watermark>

<h:inputText id="firstName" value="#{registrationBean.firstName}" />  
<p:watermark for="firstName" value="First Name" />  

PrimeFacesを何らかの理由で使用できない場合は、内部で行っているのとまったく同じように、カスタムコンポーネントやJS/jQueryのカスタムピースのフレーバーで自分で再発明する必要があり<p:watermark>ます。

于 2012-04-12T21:29:02.953 に答える
3

<h:inputText>PostConstrutフェーズでバッキングBeanのデフォルト値を定義できます。

@ManagedBean(name="registrationBean")   
public class RegistrationBean{

    private String firstName;

    @PostConstruct
    public void init(){
        firstName = "your default value";
    }

}

ページ作成後の値h:inputTextは、バッキングBeanで定義したとおりになります。サードパーティのライブラリがなくても回避できるので、誰かに役立つかもしれません。

于 2013-10-28T11:04:33.670 に答える
1

JSFによってレンダリングされたHTMLタグは、HTML5のプレースホルダー属性を挿入して読み込んだ後、JavaScriptで変更できます。

<script>
  window.onload = function() {
    document.getElementById('email').setAttribute("placeholder", "Email");
    document.getElementById('pwd').setAttribute("placeholder", "Password");
  }
</script>
于 2012-11-12T12:09:49.640 に答える
-1

PrimeFacesを使用する場合は、透かしを使用する必要はありません。以下の例を参照してください。

<h:form>  
    <p:panel id="panel" header="Client Details" style="margin-bottom:10px;">  
    <p:messages id="messages" />  
    <h:panelGrid columns="2">

        <h:outputLabel for="firstName" value="First Name" />  
        <p:inputText id="firstName" value="#{clientlistpagebean.selectedFieldClient.firstName}" required="true" />  

        <p:outputLabel for="lastName" value="Last Name" />  
        <p:inputText id="lastName" value="#{clientlistpagebean.selectedFieldClient.lastName}" required="true" />  

    </h:panelGrid>  
    </p:panel>  

    <p:commandButton value="Submit" update="panel" style="margin-right:20px;" />  
</h:form>   
于 2012-07-07T12:21:41.040 に答える