我正在wicket (Java-SQLite-NetBeans IDE)上做一个项目。我无法运行登录功能。
当我按下登录按钮时,它给出了下面的错误:
. lang。ClassCastException: org.apache.wicket.protocol.http.WebSession不能被强制转换为itucs.blg361.g03.Users.UserSessionitucs.blg361.g03.HeaderPanel LoginForm.onSubmit美元( HeaderPanel.java: 263 )
public static final class LoginForm extends Form {
...
261 @Override
262 public final void onSubmit() {
263 **UserSession session = (UserSession) getSession();**
...}
注意:据我所知,它不能创建会话。为什么会这样?请帮助:)
public class UserSession extends WebSession {
private String userName;
private int userGroup;
private User user;
protected UserSession(Request request) {
super(request);
//user = new User();
//userName = user.getName();
//userGroup = user.getGroup_id();
}
public final boolean LogIn( String username, String password) {
if (userName == null) {
Application app = (Application) this.getApplication();
UserCollection usrCollection = app.getUserCollection();
if (usrCollection.UserEntry(username,password)) {
this.user = usrCollection.getUser(username);
this.userName=user.getName();
this.userGroup=user.getGroup_id();
}
}
return userName != null;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
this.userName =user.getName();
this.userGroup=user.getGroup_id();
}
public String getUserName(){
return userName;
}
public int getuserGroup() {
return userGroup;
}
public boolean isSignedIn() {
return userName != null;
}
public void SignOut(){
userName = null;
user=null;
userGroup=0;
}
}
把我的评论放在答案中,这样问题就可以结束了:
您需要重写Application.newSession()成员来返回您自己的Session实现。
希望对你有帮助。
PS:看你的其他问题,我注意到你有一些回答别人,但你不接受这些答案。标记这些问题的答案会增加你得到答案的变化。