那這時如果要取得:javax.servlet.http.HttpServletRequest 的參數的話:就要寫:
javax.servlet.ServletRequest servletRequest = (javax.servlet.ServletRequest) request.getAttribute("javax.servlet.request");
再把 servletRequest cast HttpServletRequest,就可以了, 如下:
HttpServletRequest request = (HttpServletRequest) servletRequest;
補充:
如果要把這個抽出來寫一個 讓RenderRequest和ActionRequest 共用的method
因為:
portlet的 RenderRequest 是繼承 javax.portlet.PortletRequest
public abstract interface javax.portlet.RenderRequest extends javax.portlet.PortletRequest
ActionRequest 是繼承 ClientDataRequest ,它又繼承 PortletRequest
public abstract interface javax.portlet.ActionRequest extends javax.portlet.ClientDataRequest
public abstract interface javax.portlet.ClientDataRequest extends javax.portlet.PortletRequest
private HttpServletRequest getHttpRequest(PortletRequest request) {
javax.servlet.ServletRequest servletRequest = (javax.servlet.ServletRequest) request.getAttribute("javax.servlet.request");
HttpServletRequest httpRequest = (HttpServletRequest) servletRequest;
return httpRequest;
}
這樣就可以在 processaction和doview,這樣寫
HttpServletRequest httpRequest = getHttpRequest(request);