4

私は Struts v1.3 を使用しており、次の入力フォームがあります。

struts-config.xml で:

    <form-bean name="testForm" 
               type="org.apache.struts.validator.DynaValidatorForm">
        <form-property name="displayName" type="java.lang.String" />
    </form-bean>

validation.xml 内:

    <form name="testForm">
        <field property="displayName" depends="required">
            <arg key="input.displayName" />
        </field>
    </form>

「displayName」の値をトリムするにはどうすればよいですか? フォームのすべての「java.lang.String」入力フィールドの値をトリムするにはどうすればよいですか?

4

4 に答える 4

2

現時点で文字列をトリミングする機会があるかもしれません。リクエスト プロセッサは、入力フィールドからフォームへのデータを更新します。これはテストされていませんが、セッター setDisplayName(String displayName) を次のように変更するとどうなりますか

public void setDisplayName(String displayName) {
    this.displayName = displayName.trim();
}

これは、ロジックをセッターに移行するため、あまり良い解決策ではありません。

よろしく

于 2008-11-04T21:04:11.373 に答える
1

検証の目的でトリムを使用する場合、適切な方法は、トリムを考慮した必須フィールドに対して独自の(または既存の)バリデーターを作成して使用することだと思います。たとえば、次のページを使用できます:http ://struts.apache.org/1.2.4/userGuide/dev_validator.html 、セクション「PluggableValidators」。

ビジネスロジックで使用する前に文字列値をトリミングするためにtrimを使用する場合は、 org.apache.struts.validator.DynaValidatorFormを拡張し、 get(String name)getString(String name)などの値を取得するメソッドを上書きできます。 など。その後、form-b​​ean宣言でクラスを使用します。

于 2011-06-11T07:40:41.053 に答える
0

Form クラスに String 操作ロジックを使用してもかまわない場合は、Apache の Commons Lang JAR で StringUtils メソッドを試すことができます。

StringUtils JavaDoc

これにより、trimToEmpty、trimToNull など、いくつかの特定の方法で文字列をトリミングできます。これは、一部の値で役立つ可能性のある null セーフ メソッドにアクセスできることを意味します。

于 2009-04-09T17:05:12.313 に答える
-1

または、onfocus または onblur をトリミングする jsp で javascript regexp を使用してみてください。

< html:text name="testForm" property="displayName" onfocus="javascript:this.value=this.value.replace(/^\s+|\s+$/g,'')" onblur="javascript:this .value=this.value.replace(/^\s+|\s+$/g,'')" />

于 2009-04-09T16:36:00.137 に答える