Wicket HttpServletRequest

Wicket を使用していて、どうしても HttpServletRequest や、HttpServletResponse を
使用したい時にどうやって取得するか。。。
そんな RAW 型を使う機会は少ないが知っておいて損はない。

 

Wicket で原始的な Response を使う注意の1つ - Oboe吹きプログラマの黙示録

以下、8年後、↑ に注意。。。


WebPage を extend したコンストラクタで以下のように取得できる。

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import wicket.markup.html.WebMarkupContainer;
import wicket.protocol.http.servlet.ServletWebRequest;

 <<省略>>

ServletWebRequest servletWebRequest = (ServletWebRequest)getRequest();
HttpServletRequest request = servletWebRequest.getHttpServletRequest();

WebResponse webResponse = (WebResponse)getResponse();
HttpServletResponse response = webResponse.getHttpServletResponse();

すなわち、

HttpServletRequest request = getWebRequestCycle().getWebRequest().getHttpServletRequest();
HttpServletResponse response = getWebRequestCycle().getWebResponse().getHttpServletResponse();

ということである。