问题标签 [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.
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
?
javascript - 从 Javascript 调用 Wicket - ajax 请求未完成
我从 Wicket 创建了一个 javascript 方法,它将重新加载一个面板:
我正在使用 jquery.fileupload 上传一些图片:
RELOAD_IMAGES_PANEL_JS = reloadImagesPanel
因此,当我上传图像时,它们被移动到相应的文件夹,调用了reloadImagesPanel(),但是控制台网络选项卡中没有 GET 请求告诉我服务器端的响应方法已完成当然,面板被重新加载。
这是我期望看到的:
日志文件中没有错误,控制台中没有错误,它适用于本地主机,它不适用于生产环境。
这怎么可能?为什么客户端调用了 RELOAD_IMAGES_PANEL_JS wicket 方法,而 response(AjaxRequestTarget target) 方法却从不丰富?
java - 在 Wicket 7 中打开多个选项卡时,文件上传上的“无法从字节 [] 反序列化对象”
我们有一个大型检票口应用程序,它有一个烦人的错误。我们有一个带有文件上传字段的表单,并且在大多数情况下它工作正常。唯一失败的情况是用户打开了多个浏览器选项卡。然后我们得到以下异常(每打开一个额外的选项卡一次):
FileUploadField 是更大页面的一部分,因此用户选择一个文件并使用 ajax 提交按钮上传它,然后再继续。
上传面板是使用wicket 扩展中的BreadCrumbPanels的“面包屑”样式页面的一部分。上传部分位于一个面板上,然后替换为面包屑中的下一个面板。当他们尝试执行导致 ajax 调用的任何操作时,就会在该面板上发生错误。
据我所知,客户端请求有某种散列函数来定义要加载的临时文件的名称,这对于不同的选项卡是不同的?有没有其他人遇到过这个问题,我似乎在任何地方都找不到任何参考。
我们正在使用 Java 8/Wicket 7.10
提前致谢
wicket - 是否可以/如何在反馈面板上多次显示消息
我的 panelA 类中有一个 org.apache.wicket.markup.html.panel.FeedbackPanel。反馈面板在 panelA 构造函数中实例化,其中显示一条消息 -> feedbackPanel.info("displayFirstTime")。我正在导航到新页面,然后使用命令导航到上一个 panelA
但消息“displayFirstTime”将不会再次显示在反馈面板上。
我已经通过覆盖面板 onBeforeRender 方法做到了
但这不是一个干净的解决方案。
是否有可能或如何做到这一点,当第二次移动到 panelA 页面时,也会显示反馈消息?
wicket - 如何使用 StringResourceModel 显示带有一个简单参数的简单检票口消息
我在 WicketApplicationProperties.properies 中有一个 Wicket 文本属性
如何使用类 StringResourceModel 替换参数 {minimalnaData}。我不想创建任何模型,我只想显示具有提供的一个属性的消息。Wicket StringResourceModel 非常复杂。
如何提供这个参数是最简单的方法。
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 引用它...
wicket - 找不到 ID 为“FooPopup”的组件
我在生产日志中发现了这个奇怪的错误:
我无法在本地重现此内容。由于预期和找到的项目具有完全相同的名称,您知道这可能是什么原因吗?先感谢您!
java - Wicket:当不再选择复选框时收到通知
这是 Wicket GUI (Wicket 7.6.0) 的一部分,它充当前端以显示一些数据库条目。
在这个特定页面上,我们有一个表单,用户可以通过指定搜索条目,例如。开始日期、结束日期等以限制结果。点击按钮后,搜索条目将显示在此搜索表单下方。
这些结果使用DataTable
带有分页的 Wicket 显示。该表中的条目有一个复选框。这是由添加实例 ( ) 的自定义CheckBoxPanel
(从 扩展而来Panel
)实现的。Check
org.apache.wicket.markup.html.form.Check
现在,我想对复选框的每次选择和取消选择做出反应。这样做的原因是,即使在第二个列表中的分页中,我们也希望跟踪选择的项目。
我将其添加AjaxFormChoiceComponentUpdatingBehavior
到组中(请参阅addCheckboxes
下面的方法来源)。只要选择了至少一个复选框,此功能就可以工作 - 每次单击复选框都会打印调试语句。
但是,当最后一个复选框未选中时,尽管进行了 AJAX 调用(通过使用Firefox Developer Tools验证),但不会onUpdate()
调用该方法。请求有效负载是. 当我选择一个项目时,请求有效负载是例如:.group%3Aactions=
group=check4&group%3Aactions=
我的问题是:如果不再选择任何项目,有没有办法得到通知?这是保持前面提到的“第二个列表”同步所必需的。
解决方案不需要使用 AJAX,经典的 POST 解决方案也可以。
java - 检票口中的复杂模型
我正在寻找一些检票口最佳实践技巧。
我正在重构一个检票口应用程序,并且我有一个复杂的模型。这意味着主模型的对象是一个 java bean,它包含属性(和 getter/setter)加上它包含其他 bean。
主豆与其他豆的深度为 4 层。这大大简化了我的代码,因为我可以将顶级 bean 传递到组件中,并且它可以更改它需要的所有内容。一点一点地,我一直在使用辅助方法(例如,excessMaximum()、isNull() 等)填充各种 bean。
例子:
这条道路上是否有任何陷阱。我是否应该担心将主模型传递给许多组件的开销?为我的辅助方法创建一个实用程序类来保持 bean 的纯净会更好吗?这里有任何危险信号吗?
java - Wicket 反馈消息和 AjaxButton
我有一个只包含一个 TextField 和一个按钮的表单。我注意到,如果我根据需要设置文本字段并单击按钮,我会收到相应的反馈消息。
但是,当我有一个 AjaxButton(这是我需要的,因为我需要使用 AjaxRequestTarget 执行回调方法)时,我看不到反馈消息,除非我重新加载。在调试时,我注意到表单的 onSubmit 方法被调用(也是 onError),但是 AjaxButton 的 onSubmit 方法没有被调用。
你建议我怎么做才能看到反馈消息并调用回调方法?