2011-08-09 3 views
1

私はbeaneditformでpasswordfieldのregexpを作成しようとしますが、passwordfieldはregexepを認識しません。 :)beaneditformでpasswordfieldのregexpを作成する方法は?

addUser.tml

<t:beaneditform t:id="newUser" exclude="id" reorder="userName,password,fullName,Gender,email,role"> 
.......................... 
<t:parameter t:name="password"> 
      <t:label t:for="password" /> 
      <t:passwordfield t:id="password" t:value="newUser.password" t:validate="required,regexp"/> 
     </t:parameter> 
....................... 
</t:beaneditform> 

addUser.properties

password-regexp=^[a-z0-9_]{3,15}$ 
password-regexp-message=password only alowed letters [a-z] numbers[0-9] and underscore 

addUser.java:

@Persist 
    @Property 
    private User newUser; 
+0

は、あなたが検証を取得されていません...かありますあなたはランタイム例外を取得していますか?あなたのソリューションは、本当に "addUser"(伝統的にJavaのクラス名は大文字であるので、これは奇妙に見えます)あなたのクラス名は本当にそうです。 –

答えて

1

私はタペストリーでマークアップに統合正規表現のチェックがないと考えています。このlinkの最後にサポートされているバリデーターがあります(しかし多分あなたが使っているバージョンでは、 )。

おそらく、誤った入力に対してそのフィールドを検証するために、何らかの形でonValidate lifeCycleイベントハンドラを使用しようと試みることができます。

@Component 
private Form yourForm; 

@Property 
private String inputFromField; 

public void onValidate() { 
     Pattern p = Pattern.compile("^[a-zA-Z0-9]+$");//Alpha numeric regexp 
     Matcher m = p.matcher(inputFromField); 
     if(m.find()) { 
      yourForm.recordError(inputFromField,messages.get("This field can only contain letters and numbers")); 
     }    
} 

とにかく、イムは確かにこれを行う方法の複数の方法がありますが、これはあくまでも一例です。 私はコンパイルして試してみませんでしたが、これは実行可能な方法の1つです。その他のヘルプが必要な場合は、次のページをご覧ください。http://www.packtpub.com/article/user-input-validation-in-tapestry-5

フォームにタグを追加することを忘れないでください。

更新

私はマークアップに直接正規表現を使用することはできませんと言ったとき、私は間違っていました。 Heanningのリンクを見た後、私はあなたが計画した通りに正規表現を直接使用する可能性があることを知りました。 例:

<t:textfield value="otherfield" validate="regexp=^a-z+$" /> 

私はそれがうまく(タペストリー5の場合)について説明され、彼は言ったリンクを見てすることをお勧めいたしますでしょう:http://tapestry.apache.org/forms-and-validation.html

+2

いいえ、Tapestry 5.0以降には、regexpバリデーターがあります - ドキュメントの[Validationセクション](http://tapestry.apache.org/forms-and-validation.html)を参照するか、secord link提供されます。 – Henning

+0

@ヘニングそれらはすばらしいニュースです。私はちょうどそのリンクをリンクし、私の答えを更新したので、彼はまたregxpのカタログを使用するオプションがあります。とにかく偉大なリンク(コメント1+) – sfrj

+0

私はテキストフィールドのパスワードフィールドのregexpを提供しようとしています dusmanka

0

あなたはt:id="newUser"を使用しますが、あなたのプロパティファイルがaddUser.propertiesです。あなたはタペストリーがpassword-regexpを探す場所を知っていると確信していますか?

+0

タペストリーは電子メール、userNameのためのregexpとの私のalredyの仕事のためにどこを見るべきかを知っています... userNameとemailのためにこれはOKです! – dusmanka

関連する問題