这是我第一次使用检票口,所以请耐心等待。
wicket中的大多数示例显示了如何使用wicket id可以使用不同的东西自动替换内部HTML。利用这些知识,我手工编写了一个HTML格式的表单,其中包含大量格式和JQuery,用于不同的事情,并且只使用Wicket自动生成2个选择框的信息。但是,当我尝试解析Wicket方面提交的信息时,我感到困惑。
我唯一明白的方法就是使用RequestCycle.get().getRequest().getRequestParameters().
来获取所有传递的信息。它有效,但我不认为这是使用Wicket的理想方式。似乎还有一种处理请求处理程序的方法,但我不知道从哪里开始,特别是因为许多文档已经过时了新的6.0.0版本。
我应该在表格中使用Wicket的方式是什么?我是否手写大部分表格,只让Wicket自动生成一些信息,并使用RequestCycle?我是否编写了一个骨架表单,让Wicket自动生成其余部分,并使用大量的提交处理程序?在易于理解的初学者教程中记录了哪些内容?
注意:我的表单有几个动态创建的字段(想想"点击这里添加更多选项")并在后台用AJAX提交,验证,然后清除。这可能会使Wicket方面变得复杂,但这是一个功能要求
答案 0 :(得分:4)
使用Wicket,您可以将HTML标记视为模板。标记实际上几乎是标准的HTML。您可以(并且应该)为具有某些行为或逻辑的所有内容(表单,按钮,链接)定义wicket:id
属性,或者需要一些服务器端处理(例如表单组件或嵌套的自定义组件或面板) 。其他所有内容都将在响应中输出,因为它在标记中。
Wicket将处理表单提交并处理您的请求。在Wicket中,表单组件通常在服务器端定义,并添加到Form
组件中。在Form
组件onSubmit()
中,Wicket已经处理了请求,提交的值将在FormComponent
的模型中提供。
因此,Wicket处理表单提交的理想方式是在服务器端创建表单中的任何组件。
以下Wicket示例页面显示了一个基本Form
,其中包含一些FormComponents
:Wicket 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章 - 使用表单处理用户输入详细说明了主题。