2008-10-27 33 views
4

我使用Struts V1.3,並具有以下輸入表格:如何在struts中修改輸入字段值?

在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> 

如何修剪的價值「顯示名稱」?如何修剪表單中所有「java.lang.String」輸入字段的值?

回答

2

您可能有機會在此刻修剪字符串,請求處理器將輸入字段中的數據更新爲表單。這是沒有測試,但是當你修改二傳手setDisplayName(字符串顯示名)喜歡的東西

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

這並不是一個很好的解決方案,會發生什麼,因爲它遷移邏輯放在制定者。

問候

-1

或者嘗試將修剪的onfocus或的onblur

< HTML jsp中使用JavaScript的正則表達式:文本名稱= 「了testForm」 屬性= 「顯示名」 的onfocus =「JavaScript的:這一點。 value = this.value.replace(/^\ s + | \ s + $/g,'')「onblur =」javascript:this.value = this.value.replace(/^\ s + | \ s + $/g,' ')「/>

+0

這看起來真的很冗長,容易出錯,很容易忘記。我同意它的工作原理,但在表格制定者或行動中進行修剪對我來說似乎更好。 – 2009-04-14 14:53:28

0

如果你不介意在你的Form類中有字符串操作邏輯,你可以試試StringUti LS方法在Apache的共享郎JAR:

StringUtils JavaDoc

這將讓你修剪你的字符串中的一些具體方法,你是否要trimToEmpty,trimToNull等,這意味着你有機會獲得空安全方法,這對某些值可能有用。

1

如果你想使用裝飾爲驗證目的,我認爲正確的方法是創建和使用自己(或擴展現有的)爲必填字段驗證器需要修剪考慮。 例如,您可以使用此頁面:http://struts.apache.org/1.2.4/userGuide/dev_validator.html,「Pluggable Validators」部分。

如果你想在你的業務邏輯使用它們使用修剪修剪的字符串值之前,你可以擴展org.apache.struts.validator.DynaValidatorForm和覆蓋該檢索值的方法,如GET (String name),getString(String name)等等。之後,您可以在form-b​​ean聲明中使用您的課程。