gpt4 book ai didi

java - 如何控制 Wicket 表单中的提交 url 操作?

转载 作者:搜寻专家 更新时间:2023-11-01 02:55:57 26 4
gpt4 key购买 nike

我有一个 wicket web 应用程序,其中 Page 挂载到书签别名。该页面包含一个带有提交操作的表单对象。

问题是虽然表单属于页面,但操作 url 不包含页面别名,而是以 wicket 操作的神秘形式创建。有没有一种方法可以调整该行为,使链接类似于 page_alias/submit

...
setRenderStrategy(IRequestCycleSettings.ONE_PASS_RENDER);
mountBookmarkablePage("/resetpwd", ResetPasswordPage.class);
...
public ResetPasswordPage(final String id, final PageParameters parameters) {
final Form form = new StatelessForm();
form.add(new Button("submit") {
public void onSubmit() {
...
});
add(form);

最佳答案

如果子类化 StatelessForm而不是 Form ,这将带你走一段路。而不是像

action="myapp/?wicket:interface=:1:eventEditor::IFormSubmitListener::"

将包含表单的页面安装在可添加书签的 URL 上,例如,您会得到类似的内容

action="myapp/mount/path/some/params/?wicket:interface=:0:eventEditor::IFormSubmitListener::"

这使用了 MixedParamUrlCodingStrategyWebApplication.init()

中挂载

然后您可以覆盖 encodeUrlInHiddenFields() 以返回 true,这将在 action 属性中为您提供一个干净的 URL。

但是,所有这些并没有真正改变 Wicket 使用表单的方式,即。即,您在客户端的标记中仍然有一些特定于 Wicket 的状态数据。我认为,之所以如此困难,是因为 Wicket 旨在帮助您构建一个 具有 状态的 Web 应用程序。我注意到 Wicket 在幕后做了很多事情(比如将提交的表单值与模型的 getter 在调用 setter 之前返回的值进行比较),我知道的太少以至于在删除它时会很舒服。

不过,您可以使用 Wicket 提供 RESTful 网络服务,如 this blog post 中所述。 .还有一个 project on Google code called wicket-rest扩展了这个想法。请注意,这看起来很简单,因为它从不使用整个基于组件的 UI 构建 Material 。

this post的人有一个不同的问题,但无论如何它帮助我更好地理解了 Wicket 表单。

关于java - 如何控制 Wicket 表单中的提交 url 操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1640528/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com