Wicketで外部POSTリクエストから値を取得する

ActionScriptからのjsonデータを受け取ってそれをjsonicでオブジェクトに変換してDBに収めるという作業をしないといけなくなったので書いた。

もらったソース

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" backgroundColor="#FFFFFF">
<mx:Script>
	<![CDATA[
		private function sendData():void{
			var mytext:String = '[{"jobId":2,"memberId":1},{"jobId":4,"memberId":2},{"jobId":1,"memberId":3}]';
			send.request.String = mytext;
			send.send();
		}
	]]>
</mx:Script>
	<mx:Button label="送信!" click="sendData()" x="217" y="75"/>
	<mx:HTTPService id="send" url="http://localhost:8080/sample/hoge" useProxy="false"/>	
</mx:Application>

ActionScriptとか書いたことないけど何となく分かります。
HTTPServiceの部分に

method="POST"

がないのが気になったのですがなくても問題なかったのでデフォルトがPOSTになってるんでしょうかね

FromFlashPage.java

public class FromFlashPage extends WebPage{

	public FromFlashPage(PageParameters param) {
		WebRequestCycle cycle = getWebRequestCycle();
		String mytext = cycle.getRequest().getParameter("String");
		System.out.println(mytext);

	}
}

htmlは省略。とりあえずこれで送られてきたjsonのデータが取得できます。その後はJSONICでオブジェクトに変換してDBに突っ込むだけ。

RequestURLを見てみたところ

http://localhost:8080/sample/hoge?String=%5B%7B%22jobId%22%3A2%2C%22memberId%22%3A1%7D%2C%7B%22jobId%22%3A4%2C%22memberId%22%3A2%7D%2C%7B%22jobId%22%3A1%2C%22memberId%22%3A3%7D%5

となっていたのでActionScript側の変数名ではなく型名がパラメータになっているみたいです。ほえー。