1. <input type="submit" wicket:id="submit" />

上記の処理(FormをSubmitする)をボタンではなく下記のようなリンクを使用して同様の事を実現したい場合

  1. <a wicket:id="submit" >Submit</a>

この場合はorg.apache.wicket.markup.html.form.SubmitLinkを使用すると実現可能。

  1. public class SubmitLinkPage extends WebPage {
  2. private String input;
  3. public SubmitLinkPage() {
  4. Form form = new Form("form");
  5. add(form);
  6. form.add(new TextField("text",new PropertyModel(this, "input")));
  7. form.add(new Label("label",new PropertyModel(this, "input")));
  8. form.add(new SubmitLink("submitLink"));
  9. }
  10. }
  1. <html xmlns:wicket>
  2. <head></head>
  3. <body>
  4. <form wicket:id="form">
  5. <span wicket:id="label"></span>
  6. <input type="text" wicket:id="text"/>
  7. <a wicket:id="submitLink">Submit Link</a>
  8. </form>
  9. </body>
  10. </html>

また、下記のようにリンクがformタグの外側にある場合

  1. <html xmlns:wicket>
  2. <head></head>
  3. <body>
  4. <form wicket:id="form">
  5. <span wicket:id="label"></span>
  6. <input type="text" wicket:id="text"/>
  7. </form>
  8. <!-- fromの外側に移動 -->
  9. <a wicket:id="submitLink">Submit Link</a>
  10. </body>
  11. </html>
Java側ではSubmitLinkのコンストラクタの第2引数にサブミットしたいFormオブジェクトを指定する。
  1. public class SubmitLinkPage extends WebPage {
  2. private String input;
  3. public SubmitLinkPage() {
  4. Form form = new Form("form");
  5. add(form);
  6. form.add(new TextField("text",new PropertyModel(this, "input")));
  7. form.add(new Label("label",new PropertyModel(this, "input")));
  8. //ここ重要!
  9. add(new SubmitLink("submitLink",form));
  10. }
  11. }