我在第一个action:ProjectLogin.java中:用到:     public String execute() throws Exception {
        Map<String,String> m;                                      //定义Map类型变量 Map m;
        if (getPassword().equals(getPassword2())
                && !getUsername().trim().equals("")) {
            m = ActionContext.getContext().getSession();    //取得session
            m.put("username", getUsername());   //将name存入session
            
            JDBCDemo01 de = new JDBCDemo01();
            de.register();
            return "success";               //将请求转发到success.jsp页面
            
        } else {
            return "input";                 //将请求转发到register.jsp页面
        }
    }
第二个java是:JDBCDemo01.java关键代码是:
          ProjectLogin pl = new ProjectLogin();
                try {      
                 username = pl.getUsername();
                } catch (Exception e1) {    
                        e1.printStackTrace();    
                }    
                System.out.println("请输入年龄:");    
                try {    
                        password = pl.getPassword();   结果显示:JDBCDemo01.java 中的username,password 去的是空值,不知道什么原因啊?

解决方案 »

  1.   

    肯定的空的啦哈
    关键代码是:
              ProjectLogin pl = new ProjectLogin();
                    try {     
                    username = pl.getUsername();
                    } catch (Exception e1) {   
                            e1.printStackTrace();   
                    }   
                    System.out.println("请输入年龄:");   
                    try {   
                          password = pl.getPassword();  
    ProjectLogin pl = new ProjectLogin();  你这里从新开辟了一空间,又没设置,后面肯定是空啦
    呵呵
    你直接从session 中拿值就好啦
      

  2.   

    在第一个action中,你不是已经把username放入session中了吗(你这里写得好像有点问题),
    你吧passward也放入session中;
    然后再第二个action中,从session中取出这两个值,就可以了
      

  3.   

    在第二个java是:JDBCDemo01.java 
    红色部分:
    改为:username =  ?????帮忙改一下啦??
      

  4.   

    直接用session不行吗,怎么这么麻烦呢。
      

  5.   

    怎么改呀?
    session 是在第一个java中取得的,现在要在第二个java 中引用这个值啊?有方法不?
      

  6.   

    哎,在第一个action中,放入session中,如request.getSession().setAttribute("userName");
    在第二个action中,取出,如String userName = request.getSession.getAttribute("userName");明白啦,你是初学者,并且是女生吧
      

  7.   

    不好意思,我是初学者,
    像你所说的,那我在那添那个session 呢?第一个JAVA:package test;import java.util.Date;
    import java.util.Map;
    import com.opensymphony.xwork2.ActionContext;
    import com.opensymphony.xwork2.ActionSupport; public class ProjectLogin extends ActionSupport {
    private static final long serialVersionUID = 1L;     private String username;                                //定义用户名属性
        private String password;                               //定义密码属性
        private String password2;                               //定义确认密码
        private Date birthday;                                  //定义生日属性
        //下面是属性的getter和setter方法     public String getUsername() {
            return username;
        }     public void setUsername(String username) {
            this.username = username;
        }     public String getPassword() {
            return password;
        }     public void setPassword1(String password) {
            this.password = password;
        }     public String getPassword2() {
            return password2;
        }     public void setPassword2(String password2) {
            this.password2 = password2;
        }     public Date getBirthday() {
            return birthday;
        }     public void setBirthday(Date birthday) {
            this.birthday = birthday;
        }     public String execute() throws Exception {
        
            Map<String,String> m;                                      //定义Map类型变量 Map m;
            if (getPassword().equals(getPassword2())
                    && !getUsername().trim().equals("")) {
            
                m = ActionContext.getContext().getSession();    //取得session
                m.put("username", getUsername());   //将name存入session
                
                
                JDBCDemo01 de = new JDBCDemo01();
                de.register();
                return "success";               //将请求转发到success.jsp页面
                
            } else {
                return "input";                 //将请求转发到register.jsp页面
            }
        }
        public void validate() {                        //数据校验方法        //检查用户名是否为空
            if (username == null || username.trim().equals("")) {
                //写入校验错误
                addFieldError("username", "用户名不能为空!");
            }        //检查密码是否为空
            if (password == null || getPassword().trim().equals("")) {
                //写入校验错误
                addFieldError("password1", "密码不能为空!");
            }
            //确认密码不一致    }
        }
      

  8.   

    你为什么要把一个session赋给一个map呢
    那你这样写吧,得到session后赋给它对应的对象;
    然后将 Map <String,String> m = new HashMap<String,String>;
    m.put("userName",userName);
    m.put("password",password);
    然后再将map放入session中,session.setAttribute("map",map);
    在第二个Action中,先去的session,然后用Map map = (Map)session.getAttribute("map");
    然后,String userName = map.get("userName");
          String password = map.get("password");
      

  9.   

    我试试吧
    Map map = (Map) session.getAttribute("map"); 
    写上去有点问题啊。
      

  10.   

    我想写个测试:package test;public class test {
    public static void main(String[] args){
    ProjectLogin pl = new ProjectLogin();
    String username = null;
    String password = null;

                     System.out.println( )

    }}把username 和pasword 打印出来看看,怎么写个测试sample 啊?