2011-02-23 16 views
0
<ice:inputText id="txt-tlmanage-quantity" 
       value="#{createToolsOrderBean.toolsOrderVO.quantity}" tabindex="7" 
       onkeydown="moveFocus(event, 'txt-tlmanage-unitprice')" 
       style="margin-left: 4px;margin-bottom: 4px;"> 
      </ice:inputText> 

createSomethingメソッドを呼び出してボタンを押したときにこのページが送信されます。しかし、このメソッドは文字列値を入力したときに呼び出すことができません。quantityはInteger型です。これはエラーの原因となります。しかし、どのように知ることができますか、何が間違っていますか?JSFの数値を確認してください

私は<ice:message>を使用しますが、ページ上に長いエラーの説明が表示されます。

Error Meaasage : 

mainForm:txt-tlmanage-quantity: 'dsad' must be a number between -2147483648 and 2147483647 Example: 9346 

私自身のエラーメッセージを印刷する方法はありますか?

+0

あなたの質問を理解するのは難しいです。それをもっと明確にすることは可能でしょうか? –

+0

私はそれを得ていません...あなたはinputTextが数字だけを受け取り、コンバータを持っていて、あなた自身のメッセージを表示したいと思っています。http://www.javadabbadoo.org/apendice/jsf/mensajesEstandar/ index.htmlしかし、私はあなたが必要なのは何ですか? – Necronet

答えて

0

まず、エラーを編集して貼り付けてください。お手伝いをさせていただきます。

カスタムエラーを表示したい場合は、FacesMessage

例を使用します。

public void testingErrorMessages() { 

    try { 
     throw new Exception(""); 
    } catch(Exception exc) { 
     FacesMessage facesMsg = new FacesMessage(FacesMessage.SEVERITY_ERROR, null, "Error message here!"); 
     FacesContext.getCurrentInstance().addMessage(null, facesMsg); 
    } 
} 

ちょうどそれを追加し、<ice:message>を更新します。 reRenderはRichFaces、updateはPrimeFacesですが、IceFacesでどのように動作するのかわかりません。

0

私はあなたの問題は、あなたが手紙を使わないかもしれないということではないと思いますか?

これを修正するには、たとえばを使用します。コンバータ。

ちょうどあなたのinputTextに次のコードを追加します属性:

converter="javax.faces.Integer" 

あなたはつもり今送信すると、あなたがでエラーが表示されます。カスタムエラーメッセージを作成する場合は、バリデーターを使用してください。良いチュートリアルhereがあります。

1

ice:inputTextに整数コンバータを追加する必要があります。これは、入力された文字列を整数に変換します。

<ice:inputText id="txt-tlmanage-quantity" 
      value="#{createToolsOrderBean.toolsOrderVO.quantity}" tabindex="7" 
      onkeydown="moveFocus(event, 'txt-tlmanage-unitprice')" 
      style="margin-left: 4px;margin-bottom: 4px;"> 
    <f:converter converterId="javax.faces.Integer"/> 
</ice:inputText> 

整数を入力しないと、エラーメッセージが表示されます。ビルトインではなくカスタムメッセージを表示するには、メッセージバンドルを作成する必要があります。プロパティを作成し、あなたのパッケージのいずれかにファイル、およびカスタムエラーメッセージを追加します。

javax.faces.converter.IntegerConverter.INTEGER={2}: ''{0}'' must be a number consisting of one or more digits. 
javax.faces.converter.IntegerConverter.INTEGER_detail={2}: ''{0}'' must be a number between -2147483648 and 2147483647 Example: {1} 

は、このプロパティはfaces-config.xmlにリソースバンドルとしてファイルを追加します。受け入れるためのJSFで

<faces-config> 
    <application> 
     <message-bundle>my.package.mypropertiesfile</message-bundle> 
    </application> 
</faces-config> 
0

使用コンバータ属性を数値のみ

jsfで独自のエラーメッセージを印刷する場合は、converterMessage属性を使用できます。

<h:inputText id="textCreditCardNumberId" label="CreditCard Number" 
converter="javax.faces.Integer" converterMessage="Please enter numeric only" 
maxlength="16" styleClass="controlfont" 
value="#{OnlineReservationBean.creditCardNumber}"></h:inputText> 
関連する問題