2011-12-30 7 views
4

が、私は自動改札で処理したくないフォームがあります、このように:WicketはWicket以外のフォームタグのアクション属性を変更するのはなぜですか?私のWicketアプリケーションのページのための基本テンプレートで

<form id="myForm" action=""> 
    <!-- input fields and submit button --> 
</form> 

私はactionは、常に現在のページにそれを送信するために、空の属性を左に。アプリケーションのメインページでは動作しますが、他のページではWicketがaction属性に "../"を追加します。これは意味があるようですが、私が望むものではありません。

私はWicket 1.4.17を使用しています。この動作を停止または変更するにはどうすればよいですか?

フォームは、ユーザーがサイト管理者にフィードバックとして短いメッセージを送信できるようにするためのものです。すべてのページに表示され、入力は、マイページの基本クラスのコンストラクタのPageParametersから収集されます。これを行うためのより多くのWicketの方法があれば、私はヒントを感謝しますが、これはa)無国籍でb)非常に非常に簡単でなければなりません。

+0

Wicketが自動的にコンテキストパスを挿入するかのように聞こえます。 HTMLタグのaction属性を設定する代わりにAttributeModifierを追加しようとしましたか? – weltraumpirat

答えて

1

私はWicketのやり方で、あなたのフィードバックフォーム用のコンポーネントを書き、すべてのページに挿入します。すべてのページの(抽象的な)基本クラスがあるので、そこに追加するだけですべてのページに表示されます。

フィードバックフォームコンポーネントでは、onSubmit()メソッドを上書きしてサイト管理者にメッセージを送信するだけです。

+0

ステートレスで、常に元のページにリダイレクトされますか?私は、フォームコンポーネントがセッションへのすべての自分のページのシリアル化を引き起こさないようにします。 –

+0

@HannoFietz AFAIKこの目的のために[StatelessForm](http://wicket.apache.org/apidocs/1.5/org/apache/wicket/markup/html/form/StatelessForm.html)が存在します。 'onSubmit()'メソッドでは、 'setResponsePage(getPage()。getClass())を呼び出してリダイレクトを実現することができます。ページパラメータを尊重する必要がある場合は、それらをコンポーネントに渡す必要があります。より多くの証明をしたい場合は、 'wicket-devutils'ライブラリ、特に' StatelessComponent'アノテーションと関連する 'StatelessChecker'ライブラリを使用することもできます。 – r3nj1

関連する問題