问题标签 [wicket-7]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
329 浏览

response - 在 Wicket 7.10 中写入响应后重定向

我们在使用 Wicket 7.10 时遇到了一个特定问题,即创建一个包含多个条目的 Ajax-Response。

在我们的应用程序中,我们onRequestHandlerResolved用来做一些初始化工作并onRequestHandlerExecuted保存在requestHandlerExecutor.execute(). 为此,我们创建了一个自己的AbstractRequestCycleListener方法,它覆盖了这两个方法并调用了我们的特定代码。

请求周期:

我们的问题是,在创建 ajax-responseonRequestHandlerExecuted之后抛出的异常会创建无效响应:requestHandlerExecutor.execute()

为了解决我们的问题,我们尝试在onRequestHandlerExecuted( RequestCycle.get().getResponse().reset()) 中的 Exception 期间清除现有的 Response,但我们无法清除在 中创建的 Response,requestHandlerExecutor.execute()因为 WicketHeaderBufferingWebResponse默认使用不允许重置已在封装中创建的 Response ServletWebResponse。调用 reset inHeaderBufferingWebResponse会引发IllegalStateException.

我们认为问题出ServletWebResponse在简单地将多个 ajax-response 条目添加到HttpServletResponse导致上述无效 XML 的结果中。

ServletWeb响应:

抛出异常时我们如何处理问题onRequestHandlerExecuted?又怎么可能,在 之后运行的代码requestHandlerExecutor.execute()正确地重定向到异常页面?在处理请求后,我们如何运行特定代码,是否有另一种方法来代替覆盖onRequestHandlerExecuted

0 投票
1 回答
241 浏览

javascript - 从 Javascript 调用 Wicket - ajax 请求未完成

我从 Wicket 创建了一个 javascript 方法,它将重新加载一个面板:

我正在使用 jquery.fileupload 上传一些图片:

RELOAD_IMAGES_PANEL_JS = reloadImagesPanel

因此,当我上传图像时,它们被移动到相应的文件夹,调用了reloadImagesPanel(),但是控制台网络选项卡中没有 GET 请求告诉我服务器端的响应方法已完成当然,面板被重新加载。

这是我期望看到的:

在此处输入图像描述

日志文件中没有错误,控制台中没有错误,它适用于本地主机,它不适用于生产环境。

这怎么可能?为什么客户端调用了 RELOAD_IMAGES_PANEL_JS wicket 方法,而 response(AjaxRequestTarget target) 方法却从不丰富?

0 投票
1 回答
781 浏览

java - 在 Wicket 7 中打开多个选项卡时,文件上传上的“无法从字节 [] 反序列化对象”

我们有一个大型检票口应用程序,它有一个烦人的错误。我们有一个带有文件上传字段的表单,并且在大多数情况下它工作正常。唯一失败的情况是用户打开了多个浏览器选项卡。然后我们得到以下异常(每打开一个额外的选项卡一次):

FileUploadField 是更大页面的一部分,因此用户选择一个文件并使用 ajax 提交按钮上传它,然后再继续。

上传面板是使用wicket 扩展中的BreadCrumbPanels的“面包屑”样式页面的一部分。上传部分位于一个面板上,然后替换为面包屑中的下一个面板。当他们尝试执行导致 ajax 调用的任何操作时,就会在该面板上发生错误。

据我所知,客户端请求有某种散列函数来定义要加载的临时文件的名称,这对于不同的选项卡是不同的?有没有其他人遇到过这个问题,我似乎在任何地方都找不到任何参考。

我们正在使用 Java 8/Wicket 7.10

提前致谢

0 投票
1 回答
465 浏览

wicket - 是否可以/如何在反馈面板上多次显示消息

我的 panelA 类中有一个 org.apache.wicket.markup.html.panel.FeedbackPanel。反馈面板在 panelA 构造函数中实例化,其中显示一条消息 -> feedbackPanel.info("displayFirstTime")。我正在导航到新页面,然后使用命令导航到上一个 panelA

但消息“displayFirstTime”将不会再次显示在反馈面板上。

我已经通过覆盖面板 onBeforeRender 方法做到了

但这不是一个干净的解决方案。

是否有可能或如何做到这一点,当第二次移动到 panelA 页面时,也会显示反馈消息?

0 投票
2 回答
227 浏览

wicket - 如何使用 StringResourceModel 显示带有一个简单参数的简单检票口消息

我在 WicketApplicationProperties.properies 中有一个 Wicket 文本属性

如何使用类 StringResourceModel 替换参数 {minimalnaData}。我不想创建任何模型,我只想显示具有提供的一个属性的消息。Wicket StringResourceModel 非常复杂。

如何提供这个参数是最简单的方法。

0 投票
1 回答
361 浏览

jquery - 使用wicket 7.10.0,如何更改jquery 3.2.1的打包版本

试图让 wicket 应用程序使用打包的 jquery v 3.2.1。我在 wicket-core-7.10.0.jar\org\apache\wicket\resource\jquery 中看到了这个以及 v 1.x 和 2.x 文件。

我在我的应用程序初始化中尝试了下面,但这没有找到资源 ResourceReference rnew = new UrlResourceReference(Url.parse("jquery/jquery-3.2.1.js")).setContextRelative(true);

我看到有一个名为 JQueryResourceReference 的类,但构造函数没有参数,只默认为 jquery 1.12.4。有一个名为 DynamicJQueryResourceReference 的类,根据浏览器版本,它似乎默认为 1.12.4 或 2.2.4

试图查看是否有一种明显的方法可以将 Wicket 7 对 Jquery 的总体使用覆盖为 3,或者我需要提供我自己的版本作为单独的资源并使用 UrlResourceReference 引用它...

0 投票
1 回答
69 浏览

wicket - 找不到 ID 为“FooPopup”的组件

我在生产日志中发现了这个奇怪的错误:

我无法在本地重现此内容。由于预期和找到的项目具有完全相同的名称,您知道这可能是什么原因吗?先感谢您!

0 投票
1 回答
110 浏览

java - Wicket:当不再选择复选框时收到通知

这是 Wicket GUI (Wicket 7.6.0) 的一部分,它充当前端以显示一些数据库条目。

在这个特定页面上,我们有一个表单,用户可以通过指定搜索条目,例如。开始日期、结束日期等以限制结果。点击按钮后,搜索条目将显示在此搜索表单下方。

这些结果使用DataTable带有分页的 Wicket 显示。该表中的条目有一个复选框。这是由添加实例 ( ) 的自定义CheckBoxPanel(从 扩展而来Panel)实现的。Checkorg.apache.wicket.markup.html.form.Check

现在,我想对复选框的每次选择取消选择做出反应。这样做的原因是,即使在第二个列表中的分页中,我们也希望跟踪选择的项目。

我将其添加AjaxFormChoiceComponentUpdatingBehavior到组中(请参阅addCheckboxes下面的方法来源)。只要选择了至少一个复选框,此功能就可以工作 - 每次单击复选框都会打印调试语句。

但是,当最后一个复选框未选中时,尽管进行了 AJAX 调用(通过使用Firefox Developer Tools验证),但不会onUpdate()调用该方法。请求有效负载是. 当我选择一个项目时,请求有效负载是例如:.group%3Aactions=group=check4&group%3Aactions=

我的问题是:如果不再选择任何项目,有没有办法得到通知?这是保持前面提到的“第二个列表”同步所必需的。

解决方案不需要使用 AJAX,经典的 POST 解决方案也可以。

0 投票
0 回答
75 浏览

java - 检票口中的复杂模型

我正在寻找一些检票口最佳实践技巧。

我正在重构一个检票口应用程序,并且我有一个复杂的模型。这意味着主模型的对象是一个 java bean,它包含属性(和 getter/setter)加上它包含其他 bean。

主豆与其他豆的深度为 4 层。这大大简化了我的代码,因为我可以将顶级 bean 传递到组件中,并且它可以更改它需要的所有内容。一点一点地,我一直在使用辅助方法(例如,excessMaximum()、isNull() 等)填充各种 bean。

例子:

这条道路上是否有任何陷阱。我是否应该担心将主模型传递给许多组件的开销?为我的辅助方法创建一个实用程序类来保持 bean 的纯净会更好吗?这里有任何危险信号吗?

0 投票
1 回答
171 浏览

java - Wicket 反馈消息和 AjaxButton

我有一个只包含一个 TextField 和一个按钮的表单。我注意到,如果我根据需要设置文本字段并单击按钮,我会收到相应的反馈消息。

但是,当我有一个 AjaxButton(这是我需要的,因为我需要使用 AjaxRequestTarget 执行回调方法)时,我看不到反馈消息,除非我重新加载。在调试时,我注意到表单的 onSubmit 方法被调用(也是 onError),但是 AjaxButton 的 onSubmit 方法没有被调用

你建议我怎么做才能看到反馈消息调用回调方法?