为什么Wicket会改变非Wicket表单标签的action属性?

4
在我的Wicket应用程序页面的基本模板中,有一个表单,我不希望Wicket处理,如下所示:
<form id="myForm" action="">
  <!-- input fields and submit button -->
</form>

我将action属性留空,以便始终将其发送到当前页面。在应用程序的主页面上,它能够正常工作,但是在其他页面上,Wicket会在action属性中添加“../”,这似乎是出于善意但不是我想要的。

我正在使用Wicket 1.4.17。如何停止或更改此行为?

该表单旨在使用户向站点管理员提交短消息反馈。它出现在每个页面上,并且从我的页面基类的构造函数中收集输入的PageParameters。如果有更多Wicket的方法来实现这一点,我会感激提示,但是这应该是a)无状态和b)非常简单的。


听起来好像Wicket自动插入了上下文路径。您是否尝试添加AttributeModifier而不是设置HTML标记的操作属性? - weltraumpirat
1个回答

1
我会选择使用Wicket的方式,为您的反馈表单编写一个组件,然后将其插入到每个页面中。由于您对所有页面都有一个(抽象)基类,因此您可以在那里简单地添加它,然后它将出现在每个页面上。
在您的反馈表单组件中,只需覆盖onSubmit()方法并将消息发送给站点管理员即可。

这个组件是无状态的吗?并且它总是重定向到原始页面吗?我不希望表单组件导致所有页面都被序列化到会话中。 - Hanno Fietz
据我所知,为此目的存在一个StatelessForm。在onSubmit()方法中,您可以调用setResponsePage(getPage().getClass())来实现重定向。如果您还必须考虑页面参数,则必须将它们传递给组件。如果您想要更多的证明,您还可以使用wicket-devutils库,特别是注释StatelessComponent和相关的StatelessChecker - stdll

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接