在Wicket中,如何用HTML手工编写,我会生成什么?

时间:2012-09-10 15:18:21

标签: java wicket

这是我第一次使用检票口,所以请耐心等待。

wicket中的大多数示例显示了如何使用wicket id可以使用不同的东西自动替换内部HTML。利用这些知识,我手工编写了一个HTML格式的表单,其中包含大量格式和JQuery,用于不同的事情,并且只使用Wicket自动生成2个选择框的信息。但是,当我尝试解析Wicket方面提交的信息时,我感到困惑。

我唯一明白的方法就是使用RequestCycle.get().getRequest().getRequestParameters().来获取所有传递的信息。它有效,但我不认为这是使用Wicket的理想方式。似乎还有一种处理请求处理程序的方法,但我不知道从哪里开始,特别是因为许多文档已经过时了新的6.0.0版本。

我应该在表格中使用Wicket的方式是什么?我是否手写大部分表格,只让Wicket自动生成一些信息,并使用RequestCycle?我是否编写了一个骨架表单,让Wicket自动生成其余部分,并使用大量的提交处理程序?在易于理解的初学者教程中记录了哪些内容?

注意:我的表单有几个动态创建的字段(想想"点击这里添加更多选项")并在后台用AJAX提交,验证,然后清除。这可能会使Wicket方面变得复杂,但这是一个功能要求

1 个答案:

答案 0 :(得分:4)

使用Wicket,您可以将HTML标记视为模板。标记实际上几乎是标准的HTML。您可以(并且应该)为具有某些行为或逻辑的所有内容(表单,按钮,链接)定义wicket:id属性,或者需要一些服务器端处理(例如表单组件或嵌套的自定义组件或面板) 。其他所有内容都将在响应中输出,因为它在标记中。

Wicket将处理表单提交并处理您的请求。在Wicket中,表单组件通常在服务器端定义,并添加到Form组件中。在Form组件onSubmit()中,Wicket已经处理了请求,提交的值将在FormComponent的模型中提供。

因此,Wicket处理表单提交的理想方式是在服务器端创建表单中的任何组件。

以下Wicket示例页面显示了一个基本Form,其中包含一些FormComponentsWicket Examples - forminput。你甚至可以看到source code

此外,您可能会发现以下Wicket维基页面非常有用:How to do things in Wicket - Forms

关于动态组件创建,每当必须创建新的动态组件时,您可以例如创建一个创建组件服务器端的Ajax请求(例如,包裹在ListView中),并获取标记刷新在ajax回调中。

这里有一个这样的列表示例:Wicket in action - Building a ListEditor form component

只是补充一下,我发现Wicket in Action本书是学习Wicket的绝佳资源。 第6章 - 使用表单处理用户输入详细说明了主题。