我最近刚开始在大学里和 Spring 一起工作,所以我还是很迷茫。目前我们正在尝试编写一个几乎可以复制涂鸦的应用程序。
我们已经设法构建了一个 login.jsp,它实际上验证了针对我们的 h2 数据库的登录,然后重定向到所有可用轮询的列表。现在我们希望能够从会话范围中获取 currentUser 以显示在右上角,并用于进一步的操作以及用户的签名。
到目前为止,我已经编辑了我的 spring-config.xml:
<!-- Session Scope -->
<bean id="userInfo" class="de.nordakademie.iaa.nakdate.sessionbeans.UserInfo" scope="session">
</bean>
然后我把这个
<p align="right">%{#userInfo.username}</p>
进入 header.jsp,它在每个页面上都可见,即使是没有用户登录的第一页。这是一种聪明的做法吗?它甚至可以工作吗?
最后我做了一个 UserInfo.java 如下:
package de.nordakademie.iaa.nakdate.sessionbeans;
public class UserInfo {
public String username;
public UserInfo(){
this.username = "Unregistered User";
}
}
我还将在这里发布我们的登录操作:
package de.nordakademie.iaa.nakdate.action;
import java.util.List;
import com.opensymphony.xwork2.ActionSupport;
import de.nordakademie.iaa.nakdate.model.User;
import de.nordakademie.iaa.nakdate.service.UserService;
public class LogInUserAction extends ActionSupport {
private static final long serialVersionUID = 3734334931859908102L;
private transient UserService userService;
private transient User user;
private String email;
private String password;
@Override
public String execute() throws Exception {
List<User> users = userService.loadAll();
for (User currentUser : users) {
if (currentUser.getEmail().equals(getEmail())) {
if (currentUser.getPassword().equals(getPassword())) {
return SUCCESS;
}
}
}
addActionError(getText("E-Mail / Passwort falsch!"));
return ERROR;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public UserService getUserService() {
return userService;
}
public void setUserService(UserService userService) {
this.userService = userService;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
}
如果有人能帮助解决这个问题,我将不胜感激。非常感谢!
编辑:我刚刚使用了调试标签,发现我的会话是空的。我需要做什么才能在会话中实际填写一些内容?