2007年8月17日 星期五

Wicket 心得(2)

  1. 動態加入javascript:
    1. 呼叫AjaxRequestTarget的appendJavascript(),不過僅能在Ajax component上使用
    2. 使用JavascriptUtils.writeJavascript(), 需要有wicket.Response作為參數。一般可以透過實做IHeaderContributor來獲得。然後在需要加入Javascript的page,加入以下code:
      add(new HeaderContributor(new YourHeaderContributorImpl()));
      即可
  2. Component可以透過override onComponentTag()來將原本的HTML tag進行置換。例如把無效的AjaxLink的<a>換成以<span>替代
  3. 關閉輸出wicket id到頁面:
    getMarkupSettings().setStripWicketTags(true);
  4. Wicket extension中的Wizard並不支援Ajax,因此當在ModalWindow中使用時,無法再按下Finish時關閉ModalWindow,解決方式:
    繼承AjaxSubmitButton,並在onSubmit()中呼叫WizardModel的finsih()。另外,由於AjaxSubmit似乎沒辦法透過setEnabled(false)來關閉,所以也必須override onComponentTag()來對HTML tag添加 disabled屬性

沒有留言: