Tag: wicket

如何将Wicket 7与Java 8中的java.time一起使用?

我有很多bean,都使用LocalDate和LocalDateTime。 Wicket中的DateTextField和所有其他小部件(如DatePicker)仅适用于java.util.Date。 有没有办法将转换器注入Wicket 7,以便它使用LocalDate或LocalDateTime? 豆子看起来像这样: public class SomeBean { Long id = null; LocalDate since = null; // plus getters and setters } Wicket表单当前使用CompoundPropertyModel CompoundPropertyModel model = new CompundPropertyModel( bean );

wicket中的动态支持

我希望使用wicket在我的页面中呈现标签,但是使用对选项进行 ,这在Wicket DropDownChoice中的Separator上进行了讨论,但在解决方案中, 假设标签是静态的,我想从数据库中提取选项和组。

Wicket:在哪里添加组件? 构造函数? 还是onBeforeRender?

我是Wicket newb。 这可能只是我对Wicket生命周期的无知所以请赐教! 我的理解是Wicket WebPage对象被实例化一次然后被序列化。 这让我感到困惑,见下文。 目前我有一个模板类,我打算子类。 我按照Wicket文档中的示例演示了如何在子类中覆盖模板的行为: protected void onBeforeRender() { add(new Label(“title”, getTitle())); super.onBeforeRender(); } protected String getTitle() { return “template”; } 子类: protected String getTitle() { return “Home”; } 这非常有效。 我不清楚的是这方面的“最佳实践”。 似乎onBeforeRender()在页面的每个请求上都被调用,不是吗? 如果一切都在onBeforeRender()这似乎会在页面上完成更多的处理。 我可以轻松地遵循其他Wicket示例的示例,并在构造函数中添加一些我不想覆盖的组件,但后来我将组件逻辑划分为两个位置,这是我犹豫不决的事情。 如果我添加一个我打算在所有子类中的组件,我应该将它添加到构造函数或onBeforeRender()吗?

Wicket模态窗口可以定制吗?

我需要在Wicket模态窗口的标题栏中添加一个按钮。 我在Wicket API中找不到任何有用的东西可以帮助我。 有没有办法以这种方式自定义标题栏?

我应该将html和java文件放在Apache Wicket的同一个包(文件夹)中吗?

我想知道是否有一个例子,html文件和java文件驻留在不同的文件夹中。

Wicket setResponsePage()方法如何工作?

在了解JSP和servlet时,我听说了重定向和调度。 Wicket的setResponsePage()执行了哪些操作?

什么是Wicket中的ResourceReferences,它们如何工作?

我看过包含这样的事情的例子: mountSharedResource(“/images/logo.gif”, new ResourceReference(ImageScope.class, “logo.gif”).getSharedResourceKey()); mountSharedResource(“/resource”, Application.class.getName() + “/” + resourceKey); 但是Javadoc为构造函数说明了这一点: ResourceReference(java.lang.Class scope, java.lang.String name); 因此,当您创建ResourceReference ,您可以为其提供一个类。 为什么? 通常你会想要全局范围或刚刚创建的ResourceReference对象的范围,不是吗? 还有什么name ? 是sharedResourceKey吗? 如果没有, resourceKey来自哪里? 它是如何产生的,为什么不是它的名字? 或者是在类路径上查找name ,并且神奇地加载(假设在类路径中只有一个具有该名称的文件;如果有多个会发生什么?)? 如果它确实加载了具有该名称的文件,为什么不在Javadoc中这样说呢? 你如何实际为这个ResourceReference分配一个物理资源? 有一个getResource() ,但它们似乎错过了setResource() 。 如果你有webapp目录中的图像文件,你如何“附加”文件的引用,它的路径,甚至是文件内容的字节流? 如果有一种方法可以在webapp中读取资源,这可能很有用,但你不能; 它只在类路径中。 我希望能够“挂载” webapp/games/someGame.swf的内容,以便Wicket页面可以访问webapp中的SWF,或者只是对它们进行某种处理。

Wicket和CSS资源

我一直在四处寻找,我找不到将我自己的CSS添加到Wicket网站项目的虚拟指南。 但在我开始之前……我对正确的java开发相当新,所以当我说“Dummy的指南”时,我的确是这个意思! 这里简单明了的解释非常感谢! 我从这里开始使用这个指南( http://wicket.apache.org/start/quickstart.html )并且运行正常。 接下来,我想添加自己的CSS并开始搞乱它。 我无法快速前进。 主要是因为我不知道如何在java中做到这一点(我来自C#/ asp.net背景)。 无论如何,那些了解Apache Wicket的人都会知道这一点,但快速入门的源代码会在如下project/src/main/java/com/xyz之类的地方创建代码 我猜想我能做的就是在这里添加一个CSS文件夹…所以我创建了一个示例CSS,我把它粘在这里: project/src/main/java/com/xyz/css/conor.css (containing something real simple like the following) h2 { font-family: tahoma; } 然后我删除了我的homepage.html中的Wicket默认css并将其更改为引用我的如下: 但是我的页面没有注意到conor.css …显然我做错了什么,但找不到java虚拟(也就是我!)的分步指南。 我已经阅读过你需要为eclipse安装web工具的内容。 我不知道这对我有什么用处,或者为什么它会指示我的页面使用CSS。 很感谢任何forms的帮助!

Wicketdependency injection

我在Wicket有一个带有表单的页面,其中表单需要合作者完成其工作。 合作者注入(我正在使用Guice),看起来像: public class RegistrationPage extends WebPage { @Inject public RegistrationPage(RegistrationService service) { this.service = service; add(new RegistrationForm()); } private class RegistrationForm extends Form { public RegistrationForm() { // setup } protected void onSubmit() { service.doSomething(); } } } 我不喜欢将RegistrationService注入到RegistrationPage中的想法,因为它只是需要它的RegistrationForm。 我可以更改RegistrationForm以接收RegistrationService: public RegistrationForm(RegistrationService service) { this.service = service; } 并从RegistrationPage中删除该字段,但仍然使用RegistrationPage进行传递。 我想我要问的是这样做的最佳做法是什么? 这样做可以,或者将RegistrationForm本身注入到页面中可能更好: public class RegistrationPage […]

Wicket调用冗长的操作并通过ajax进行更新

基于这个SO问题 ,我已经了解到Wicket将后续的AJAX请求排队。 现在我的页面上有几个AJAX请求,我想再添加一个产生冗长操作的页面。 public void populateItem(final Item item) { final MyObject object = (MyObject) item.getModelObject(); // … a couple of fields Label statusLabel = new Label(“status”, new AbstractReadOnlyModel() { @Override public Object getObject() { return someService.doSomeLengthyOperation(); } }); statusLabel.add(new AjaxSelfUpdatingTimerBehavior(Duration.seconds(5))); item.add(statusLabel) } 一旦这个Ajax请求触发,它可能需要一分钟才能完成执行。 这里的问题是someService.doSomeLengthyOperation()将执行n times the number of rows我拥有n times the number of rows ,这意味着我将排队n […]