currentUser的SpringBean会话范围

currentUser的SpringBean会话范围,spring,session,login,scope,Spring,Session,Login,Scope,我最近刚开始在大学里和Spring一起工作,所以我还是很迷茫。目前,我们正试图编写一个应用程序,将几乎复制涂鸦 我们已经成功地构建了login.jsp,它根据h2数据库实际验证登录,然后重定向到所有可用轮询的列表。现在,我们希望能够从会话范围中获取currentUser以显示在右上角,并用于进一步的操作以及用户签名 到目前为止,我已使用以下内容编辑了我的spring-config.xml: <!-- Session Scope --> <bean id="userInf

我最近刚开始在大学里和Spring一起工作,所以我还是很迷茫。目前,我们正试图编写一个应用程序,将几乎复制涂鸦

我们已经成功地构建了login.jsp,它根据h2数据库实际验证登录,然后重定向到所有可用轮询的列表。现在,我们希望能够从会话范围中获取currentUser以显示在右上角,并用于进一步的操作以及用户签名

到目前为止,我已使用以下内容编辑了我的spring-config.xml:

    <!-- Session Scope -->
<bean id="userInfo" class="de.nordakademie.iaa.nakdate.sessionbeans.UserInfo" scope="session">
</bean>
}

我还将在此处发布我们的登录操作:

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;
}
package de.nordakademie.iaa.nakdate.action;
导入java.util.List;
导入com.opensymphony.xwork2.ActionSupport;
导入de.nordakademie.iaa.nakdate.model.User;
导入de.nordakademie.iaa.nakdate.service.UserService;
公共类LogInUserAction扩展了ActionSupport{
私有静态最终长serialVersionUID=3734334931859908102L;
私有临时用户服务;
私有临时用户;
私人字符串电子邮件;
私有字符串密码;
@凌驾
公共字符串execute()引发异常{
List users=userService.loadAll();
for(用户当前用户:用户){
如果(currentUser.getEmail().equals(getEmail())){
如果(currentUser.getPassword().equals(getPassword())){
回归成功;
}
}
}
addActionError(getText(“电子邮件/Passwort-falsch!”);
返回误差;
}
公共字符串getPassword(){
返回密码;
}
public void setPassword(字符串密码){
this.password=密码;
}
公共字符串getEmail(){
回复邮件;
}
公用电子邮件(字符串电子邮件){
this.email=电子邮件;
}
公共用户服务getUserService(){
返回用户服务;
}
public void setUserService(UserService UserService){
this.userService=userService;
}
公共用户getUser(){
返回用户;
}
公共void setUser(用户){
this.user=用户;
}
}

如果有人能帮我解决这个问题,我将不胜感激。多谢各位

编辑:
我刚刚使用了debug标记,发现我的会话是空的。我需要做什么才能真正地在课程中填充内容?

我可以想出两种方法: 第一种方法是在jsp中添加模型属性并访问模型属性,方法如下:

${sessionScope['scopedTarget.userInfo'].name}
在控制器中:

@Controller
public class MyController{

    @Autowired Userinfo userInfo;

    @RequestMapping
    public String myMethod(Model model){
        model.addAttribute("userInfo", userInfo);
        ....
    }
然后,您可以在jsp中参考以下内容:

${userInfo.name}
不幸的是,第二种方法不是一种文档化的方法,它是以这种方式引用作用域bean:

${sessionScope['scopedTarget.userInfo'].name}

从这里开始:

我可以想到两种方法: 第一种方法是在jsp中添加模型属性并访问模型属性,方法如下:

${sessionScope['scopedTarget.userInfo'].name}
在控制器中:

@Controller
public class MyController{

    @Autowired Userinfo userInfo;

    @RequestMapping
    public String myMethod(Model model){
        model.addAttribute("userInfo", userInfo);
        ....
    }
然后,您可以在jsp中参考以下内容:

${userInfo.name}
不幸的是,第二种方法不是一种文档化的方法,它是以这种方式引用作用域bean:

${sessionScope['scopedTarget.userInfo'].name}

从这里开始:

我不太清楚你所说的控制器是什么意思。我有一个UserServiceImpl和一个UserAction。我应该把控制器放在哪里?哦,我以为你在使用Spring MVC,我现在看到你没有使用Spring MVC-然后你可以使用第二种方法,使用
${sessionScope['scopedTarget.userInfo'].name}
好的,我已经在我的jsp中尝试过了,但是标签不在那里。使用debug标记,我可以看到我的会话是空的。我需要做什么来填充我的会话?尝试在web.xml中添加一个
org.springframework.web.filter.RequestContextFilter
,作为一个过滤器,或者可能是更好的过滤器-在web.xml中添加这个侦听器-
org.springframework.web.context.request.RequestContextListener
我不太确定您所说的控制器是什么意思。我有一个UserServiceImpl和一个UserAction。我应该把控制器放在哪里?哦,我以为你在使用Spring MVC,我现在看到你没有使用Spring MVC-然后你可以使用第二种方法,使用
${sessionScope['scopedTarget.userInfo'].name}
好的,我已经在我的jsp中尝试过了,但是标签不在那里。使用debug标记,我可以看到我的会话是空的。我需要做什么来填充我的会话?尝试在web.xml中添加一个
org.springframework.web.filter.RequestContextFilter
,作为一个过滤器或更好的过滤器-在web.xml中添加此侦听器-
org.springframework.web.context.request.RequestContextListener