JSON データを Wikcet で出力するサンプル
Google の GSON で書いてみた。
コンテンツタイプを、application/json と指定することになるようだ。
import org.apache.wicket.markup.html.link.Link;
import org.apache.wicket.request.handler.resource.ResourceStreamRequestHandler;
import org.apache.wicket.request.resource.ContentDisposition;
import org.apache.wicket.util.resource.StringResourceStream;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
:
:
// JSON に変換する任意のオブジェクト --> FooData
final FooData data = new FooData();
final GsonBuilder builder = new GsonBuilder();
// Data型の format を指定
builder.setDateFormat("yyyy/MM/dd HH:mm:ss");
//リンクをクリックでJSON形式文字列を返すとすると、、、
add(new Link<Void>("jsonout"){
@Override
public void onClick(){
Gson gson = builder.create();
getRequestCycle().scheduleRequestHandlerAfterCurrent(
new ResourceStreamRequestHandler(new StringResourceStream(
gson.toJson(data),"application/json; charset=utf-8"))
.setFileName("demo.json")
.setContentDisposition(ContentDisposition.ATTACHMENT)
);
}
});