下面实现一个简单的表单提交,input 信息在message标签中显示的功能:
html代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form wicket:id="form">
<input type='text' wicket:id="input"/><br/>
<input type="submit" wicket:id="submit" value="提交"/>
</form>
<!--表单提交后用于显示text内容-->
<lable wicket:id="message"></lable>
</body>
</html>
java代码:
package com.wicket;
import org.apache.wicket.markup.html.WebPage;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.form.Button;
import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.markup.html.form.TextField;
import org.apache.wicket.model.Model;
public class FormPage extends WebPage {
public FormPage() {
final Label message=new Label("message","");
add(message);
Form form=new Form("form");
add(form);
/*注意这里一定要加个model,不然会报:
java.lang.IllegalStateException: Attempt to set model object on null model of component: form:input
异常
*/
final TextField<String> input=new TextField("input",new Model(""));
form.add(input);
form.add(new Button("submit"){
@Override
public void onSubmit() {
super.onSubmit();
//获取input 数据
String value = input.getModelObject();
//message 标签显示数据
message.setDefaultModelObject(value);
//input 标签清空
input.setDefaultModelObject("");
}
});
}
}