我的最终目标是在我的检票口网站表单中生成一个返回按钮。
现在我可以通过以下方式获得推荐人:
HttpServletRequest req = (HttpServletRequest)getRequest().getContainerRequest();
l.info("referer: {}", req.getHeader("referer"));
这可行,我得到了整个 URL(作为字符串),但我无法从中生成 Link 对象。
我不确定内部结构,尽管我已经看到了 的代码Application.addMount
,IRequestHandler
但我无法准确找到 URL 转换为生成BookmarkablePageLink
:Class
和PageParameters
.
PS 我知道这可以用 JavaScript 来完成,但我想为没有激活 JS 的用户提供服务。
谢谢
我目前正在使用的可能解决方案:
public static WebMarkupContainer getBackButton(org.apache.wicket.request.Request request, String id) {
WebMarkupContainer l = new WebMarkupContainer(id);
HttpServletRequest req = (HttpServletRequest)request.getContainerRequest();
l.add(AttributeModifier.append("href", req.getHeader("referer")));
return l;
}
在我的标记中,我有:
<a wicket:id="backButton">Back</a>
然后,在我的 Page 对象中:
add(WicketUtils.getBackButton(getRequest(), "backButton");
如果有人有更好的想法,我会暂时开放。