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();
}

这不是一个很好的解决方案,因为它会将逻辑迁移到 setter 中。

问候

于 2008-11-04T21:04:11.373 回答
1

如果您想将 trim 用于验证目的,我认为正确的方法是为需要 trim 的必填字段创建和使用您自己的(或扩展现有的)验证器。例如,您可以使用此页面:http ://struts.apache.org/1.2.4/userGuide/dev_validator.html ,“Pluggable Validators”部分。

如果您想在业务逻辑中使用它们之前使用 trim 修剪 String 值,您可以扩展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 回答