Tag: wicket

Wicket:如何处理长时间运行的任务

我已经设置了一个Wicket + Hibernate + Spring Web应用程序,它涉及收集一些数据(生成并返回一些文件),将其存储在数据库中,创建一些图像并在网页上显示所有这些。 这一切都适用于短期运行,但有时收集数据(涉及一些远程数字运算)需要太长时间(20多分钟)和超时。 我试图用两种方法来解决这个问题,但是它们都显示出一些问题。 第一种方法是使用AjaxLazyLoadPanel ,只是在getLazyLoadComponent中执行所有操作。 这在短期运行中运行良好,但是对于20多分钟的运行,由于超时,LazyLoadComponents不会加载(那里有好的矛盾)。 第二种方法涉及使用添加的AjaxSelfUpdatingTimerBehavior创建一个中间片段,其持续时间设置为10秒,轮询在数字运算中创建的文件。 这似乎使任务在后台运行没有问题,但是当返回的数据需要存储在数据库中时失败。 我在View模式中使用Open Session,但是在20分钟后尝试存储数据时可能会失败? (解决方案可能在于解决这个问题……)。 由于上述问题,我现在正在阅读处理这些长期运行任务的替代方法,并遇到: org.apache.wicket.util.time.Task org.apache.wicket.util.watch.ModificationWatcher 我现在想知道这些中的任何一个是否更适合解决我在运行任务和之后将数据存储在数据库中的超时问题,或者是否有任何其他解决方案可能对此有帮助情况。 我真的很想知道一种新的方法是否可行,然后我再花一天时间实现一些可能最终无法工作的东西。 最好的祝福, 蒂姆

Java / Wicket:使用Resources编译Basic Hello World

我正在关注Hello World Wicket应用程序的这个示例 https://www.ibm.com/developerworks/web/library/wa-aj-wicket/ 特别是我将HelloWorld.html放在HelloWorld.html旁边的源目录中。 我的文件结构如下所示: $ tree . ├── pom.xml ├── src │ ├── main │ │ ├── java │ │ │ └── com │ │ │ └── example │ │ │ └── wicket │ │ │ ├── HelloWorld.html │ │ │ ├── HelloWorld.java │ │ │ └── HelloWorldApplication.java │ │ ├── resources │ […]

使用Wicket + Spring + Hibernate的三层分层应用程序。 你会如何处理交易?

我正在考虑使用Spring附带的Open Session In View(OSIV)filter或拦截器,因为对于我作为开发人员来说,这似乎是一种方便的方式。 如果这是你推荐的,你建议使用filter或拦截器吗?为什么? 我也想知道它将如何与HibernateTemplate混合,如果我将失去将方法标记为@Transactional(readOnly = true)等的能力,从而失去了获得更细粒度的事务控制的能力? 对于如何使用Hibernate和Spring将这种解决方案与三层架构集成,我是否有某种最佳实践(因为我认为我决定使用Wicket进行演示应该不重要)? 如果我使用OSIV,我将至少永远不会遇到延迟加载exception,另一方面,我的事务将更长寿,然后才能通过在视图中未提交来提交。

使用@Autowired将依赖项注入使用“new …”创建的对象中

将bean注入helper类时遇到问题。 它基本上是这样的:我在页面构造函数中创建了一个对象,它可以完成一些工作,返回一些数据并在页面上显示这些数据。 在此辅助对象中,应通过@Autowired批注注入服务。 但是,当我使用它时,我总是得到一个空指针exception。 我也试过@SpringBean但没有帮助。 另一方面,当我使用@SpringBean将此服务直接注入到页面中时,它可以访问并且工作正常。 你知道问题出在哪里吗? 这是页面: public class Page extends BasePage { public Page() { HelperObject object = new HelperObject(new Application(“APP_NAME”)); String result = object.getData(); add(new Label(“label”, result)); } } 助手对象: public class HelperObject { private Application app; @Autowired private Service service; public HelperObject(Application app) { this.app = app; } public String getData() […]

如何在PageLoad上打开ModalDialog

如何在AjaxRequestTarget的构造函数中使用Wicket在PageLoad()上打开模式对话框,而不使用AjaxRequestTarget ?

Wicket复选框,自动将其更改的值提交给域对象

什么是最简洁的方法,我可以使一个复选框自动提交它属于Wicket的表单? 我根本不想要包含提交按钮。 该复选框由域对象中的布尔字段(在本例中为“Account”)支持。 省略了无关部分的简化示例: EntityModel accModel = new EntityModel(Account.class, id); PropertyModel model = new PropertyModel(accModel, “enabled”); CheckBox checkBox = new CheckBox(“cb”, model); Form form = new Form(“form”); form.add(checkBox); add(form); HTML: 编辑 :为了澄清,我的目标只是在切换复选框时更改域对象的字段( – >数据库中的值)。 任何(干净,简单)实现这一目标的方法都可以。 (我不确定你是否真的需要这个表格。)

无状态Apache Wicket无状态页面/请求

所以我正在阅读Wicket标签下的另一个问题 ,比较Apache Wicket和Apache Click 。 在我看来,这是一个简明的解释。 我比Wicket世界更熟悉Click世界。 我读到的其中一条评论是你可以制作无状态的Wicket页面。 我开始考虑这个问题,无法找到一种方法来为无状态的东西发出请求或页面请求。 在某些情况下,这肯定会派上用场。 那么如何在没有状态的情况下开始使用Wicket?

将组件动态添加到Wicket中的ListView

我想用“添加”按钮创建一个表单。 按“添加”按钮后,新面板将添加到检票口ListView元素中。 我怎么做? 我希望能够添加无限数量的行。 编辑: InteractivePanelPage.html Add Panel InteractivePanelPage.java // … imports public class InteractivePanelPage extends WebPage { public LinkedList interactivePanels = new LinkedList(); private ListView interactiveList; public InteractivePanelPage() { add(new AjaxLink(“addPanelLink”) { private static final long serialVersionUID = 1L; @Override public void onClick(AjaxRequestTarget target) { try { System.out.println(“link clicked”); InteractivePanel newInteractivePanel = new InteractivePanel( […]

如何从Wicket中的JavaScript代码调用Java代码?

如果我能做到这一点,我如何在Wicket中的JavaScript代码中调用Java代码(例如方法)。

在AJAX onchange事件中获取Wicket文本框的值

当用户在Wicket文本字段中输入数字时,我需要捕获在AJAX onchange事件中输入的值。 我怎样才能做到这一点?