我在第一个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 去的是空值,不知道什么原因啊?
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 去的是空值,不知道什么原因啊?
关键代码是:
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 中拿值就好啦
你吧passward也放入session中;
然后再第二个action中,从session中取出这两个值,就可以了
红色部分:
改为:username = ?????帮忙改一下啦??
session 是在第一个java中取得的,现在要在第二个java 中引用这个值啊?有方法不?
在第二个action中,取出,如String userName = request.getSession.getAttribute("userName");明白啦,你是初学者,并且是女生吧
像你所说的,那我在那添那个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", "密码不能为空!");
}
//确认密码不一致 }
}
那你这样写吧,得到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");
Map map = (Map) session.getAttribute("map");
写上去有点问题啊。
public static void main(String[] args){
ProjectLogin pl = new ProjectLogin();
String username = null;
String password = null;
System.out.println( )
}}把username 和pasword 打印出来看看,怎么写个测试sample 啊?