好久没有学习wicket相关的内容了,今天又来开始学习。这里是一个登陆界面,效果如下图所示。
首先得自定义一个loginfrom,如下图所示。添加简单用户名和密码项。然后就可以在主页用到它。
class LoginForm extends Form<Void> {
private TextField usernameField;
private PasswordTextField passwordField;
private Label loginStatus;
public LoginForm(String id) {
super(id);
usernameField = new TextField("username", Model.of(""));
passwordField = new PasswordTextField("password", Model.of(""));
loginStatus = new Label("loginStatus", Model.of(""));
add(usernameField);
add(passwordField);
add(loginStatus);
}
public final void onSubmit() {
String username = (String)usernameField.getDefaultModelObject();
String password = (String)passwordField.getDefaultModelObject();
if(username.equals("test") && password.equals("test"))
loginStatus.setDefaultModelObject("Congratulations!");
else
loginStatus.setDefaultModelObject("Wrong username or password!");
}
}
我这里不是使用maven来管理项目,所以在创建时候需要根据需要将jar包放到lib目录下,然后每次需要重新设置一下,有点麻烦。
最后看一下工程目录,
其中web.xml配置文件如下所示。
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
<filter>
<filter-name>wicket.LoginForm</filter-name>
<filter-class>org.apache.wicket.protocol.http.WicketFilter</filter-class>
<init-param>
<param-name>applicationClassName</param-name>
<param-value>demo.WicketApplication</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>wicket.LoginForm</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>