为什么要把action写到页面去呢

解决方案 »

  1.   

    还有另一个servlet做的 出了同样的问题。 
      

  2.   

    没写到页面中啊,我不是按条目列的么
    页面...
    xml...
    action..
    数据库...
    .....................................
      

  3.   

    你这是重复登录的结果吧 ,你每次放进去的名字都是usersession这个。
     每次登录都会产生一个sessionID。跳转主页时候吧session清了。
      

  4.   

    一个变量
    String name;
    get set。。
      

  5.   

    确实是跳转主页时 session出了问题,按你的思路应该是 点主页 重新提交了一个空表单。但是我怎么想也觉得没道理啊。点击主页---struts.xml.---action 代码就图上的简单几行,怎么也找不到哪里导致问题出现
      

  6.   

    试过了,不管用
    开服务器---部署----浏览器---登录--->主页--点击返回主页---NULL
      

  7.   

    你吧页面和action代码都帖出来。
      

  8.   

    我觉得应该不是重复登录的关系,如果是重复登录 session中对象的值不应该是null才对。
    在 页面---struts.xml---action  action在获取session就出了问题。在这应该是创建了一个新的session,也就是说原来的session已经没了,我就不明白了  session为什么会丢失了
      

  9.   

    页面
    login.jsp:
                   <s:form action="/user/Ver" method="post">
    用户名:<input type="text" name="user.name">
    <br>
    密 码:
    <input type="password" name="user.password">
    <input type="submit" value="登录"><input type="Reset" value="重置">
    </s:form>
     home.jsp: 
                 <a href="../user/index">首页</a>
                 欢迎 <s:property value="name" />登录action:
      loginAction.java:
                User getuser;
                String name;
                //get set方法省略
                public String UserVer(){
    User user = null;
    user = daoimpl.findbyname(getuser);
    HttpSession session = ServletActionContext.getRequest().getSession();
    session.setAttribute("sessionuser", user);// 放入session中
                    //登录验证
                  }
                public String Index() {
    HttpSession session = ServletActionContext.getRequest().getSession();
    User user = (User) session.getAttribute("sessionuser");
    name = user.getName();
    return "index";
    }
      

  10.   

    进入主页 看到欢迎 1 登录   点击返回主页 触发跳转主页Action: 
                               HttpSession session =ServletActionContext.getRequest().getSession();
                               User user = (User) session.getAttribute("usersession");
                               name=user.getName();楼主这里可能有问题,这里因为你已经登录,应该先判断下session.getAttribute("usersession")是否为空,
    不然你这里触发的action并未传递user的参数,又再次设置了session,就把原来的冲掉了,可能是这个引起的
      

  11.   

    为什么不写个拦截器,做统一的权限验证?还有我看你的用户验证也没做什么,
    user = daoimpl.findbyname(getuser); 
    //这里之前是否需要判断getuser是否为空,之后是否需要判断一下user是否为空,再根据实际情况进行跳转。可能是因为getuser为空或者数据库中找不到user,而你之后没有判断直接就覆盖了session中的user。
    session.setAttribute("sessionuser", user);// 放入session中
      

  12.   

    不是这问题,空值问题 都有验证,只不过没贴出来,只把session抽出来写上了
      

  13.   


    进入主页 看到欢迎 1 登录   点击返回主页 触发跳转主页Action: 
             可能这里session就变了 但不知如何验证
                               HttpSession session =ServletActionContext.getRequest().getSession();
             这里的session已经确定改变了
                               User user = (User) session.getAttribute("usersession");
                               name=user.getName();
     
      

  14.   

    写个监听器监听一下session,看看是什么触发其改变的。
      

  15.   


    或者你把session清空下在继续