7

こんにちは、

先頭/末尾の空白を削除したい入力フィールドがあります。JSF を使用し、入力フィールドを jsp のバッキング Bean にバインドします。

<h:inputText id="inputSN" value="#{regBean.inputSN}" maxlength="10"/>

私の質問は、検証以外にこれをjspで行うことができるということですか? Handler で trim() Java 関数を使用してこれを行うこともできますが、JSF でこれを実現するためのより洗練された方法があるかどうか疑問に思っています。

ありがとう。

4

5 に答える 5

6

コンバーター(チュートリアル)を使用できます。

于 2010-01-08T19:31:15.273 に答える
5

McDowell と BalusC で提案されているように、Converter を作成し、それを String クラスの @FacesConvert アノテーションに登録できます。次に、getAsObject メソッドで UIComponent タイプを確認し、HtmlInputText コンポーネントのみにトリミングを適用します。

@FacesConverter(forClass = String.class)
public class StringTrimConverter implements Serializable, javax.faces.convert.Converter {

    @Override
    public Object getAsObject(FacesContext context, UIComponent cmp, String value) {

        if (value != null && cmp instanceof HtmlInputText) {
            // trim the entered value in a HtmlInputText before doing validation/updating the model
            return value.trim();
        }

        return value;
    }

    @Override
    public String getAsString(FacesContext context, UIComponent cmp, Object value) {

        if (value != null) {
            // return the value as is for presentation
            return value.toString();
        }
        return null;
    }

}
于 2014-07-29T12:41:59.787 に答える
2

ここで同様の質問に答えました

基本的に、自動的にトリミングされるinputTextのコピーである独自のコンポーネントを作成するか、inputTextを拡張してtrimtrueの場合にトリミングする属性を追加できます。

于 2010-09-21T09:26:13.620 に答える
1

処理を行う前に、ハンドラーで trim() 関数を使用するだけでこれを解決しました。これは、これを行うための最も簡単な方法のように思えました。

于 2010-03-16T15:30:43.197 に答える
0

アイデア:

public String getTexto() {
    return texto != null ? texto.trim() : null;
}
于 2021-05-14T21:31:15.477 に答える