现在已经派生到github的wicket-rest项目不能与wicket-1.5一起工作。
此问题已在wicket mailing list中提出,但仍未得到解决。我尝试了邮件列表中给出的建议,但问题仍然存在。不会调用"onBeforeRender“方法,因此可以有效地绕过wicket-rest预处理。
当无状态提示设置为true时,可能没有调用"onBeforeRender“?
发布于 2012-08-27 15:52:31
经过一些研究,我设法解决了这个问题,并想与社区分享这个问题。
由于wicket-1.5中的api更改,因此需要在wicket-rest-api类中进行以下更改:
@Override public container getMarkupResourceStream(MarkupContainer IResourceStream,Class containerClass) { return new StringResourceStream("");现在不推荐使用AbstractWebServicePage.
protected void onBeforeRenderPage() { HttpServletRequest servletRequest = (HttpServletRequest) getRequest().getContainerRequest();HttpServletResponse servletResponse = (HttpServletResponse) getResponse().getContainerResponse();String servletResponse= servletRequest.getMethod();logger.debug(“收到来自{}的{}请求:{}”,新方法{ Object[]{ method,servletRequest.getRemoteAddr(),servletRequest.getRemotePort()});if (POST.equals(method)) { try {setModelFromBody(getRequestBody();} catch (Exception e) {//吞下此异常} doPost(getPageParameters(),servletRequest,servletResponse);} else if (GET.equals( method )) { doGet(getPageParameters(),servletRequest,servletResponse);}}
@Override public final void renderPage() { super.onBeforeRenderPage();getResponse().write(getJson());}
就这样,您现在可以再次享受优雅的wicket-rest api了,这次使用的是wicket-1.5。
我已经测试并使用了它。
如果你有更好的意见,请分享。
https://stackoverflow.com/questions/12138115
复制相似问题