設定項目の値をAjaxでチェックする。(解決というか疑うのは自分)

設定項目の値をAjaxでチェックする。の件ですが、悪いのは自分でした。疑ってすんません。> id:kkawa さん

結論から言うと、JavaScriptでURLエンコードする場合、escapeではなくencodeURIComponentを使うと言うことです。

<f:entry title="${%title}" >
    <f:textbox name="doc.title" value="${doc.title}"
               checkUrl="'descriptorByName/DocumentLinksPublisher/checkTitle?value='+escape(this.value)"/>
</f:entry>

このとき、"Javadocあ"と入力すると、http://XXX/descriptorByName/DocumentLinksPublisher/checkTitle?title=Javadoc%u3042 にアクセスします。
よく見ると、"%u3042"なんてユニコードエスケープされていることに気がつけば、はやっかたのですが。でも、Konquerorでは上手くいくんだよね。


で上記を、

<f:entry title="${%title}" >
    <f:textbox name="doc.title" value="${doc.title}"
               checkUrl="'descriptorByName/DocumentLinksPublisher/checkTitle?value='+encodeURIComponent(this.value)"/>
</f:entry>

にすると、http://vargain:8000/hudson/job/wicket/descriptorByName/DocumentLinksPublisher/checkTitle?title=Javadoc%E3%81%82 にアクセスして期待した動作になります。

実は、Mantisプラグインでも"escape"を多用しているんですが、日本語使ったことがなかったので、発覚しなかったようです。

週末に修正してリリースします。