Action不能获取java bean 的数据。解决方案
Action不能获取java bean 的数据。
Ttt.java AbstractTtt.java ttt.hbm.xml都是hibernate自动生成的文件
AbstractTtt.java
public abstract class AbstractTtt implements java.io.Serializable {
private String id;
private String name;
private String password;
public AbstractTtt() {
}
public AbstractTtt(String id, String name, String password) {
this.id = id;
this.name = name;
this.password = password;
}
//...下面是set 和get方法
}
Ttt.java继承了 AbstractTtt.java。就写了一个带参的构造函数和一个无参的构造函数
提交页面的代码如下
<body>
<form action="addmes" method="post">
id:<input type="text" name="Ttt.id"><br>
name:<input type="text" name="Ttt.name"><br>
password:<input type="text" name="Ttt.password"><br>
<input type="submit" value="注册">
</form>
</body>
action的代码
public class addmes {
private Ttt t;
public Ttt getT() {
return t;
}
public void setT(Ttt t) {
this.t = t;
}
public String execute()throws Exception{
//tthib dao=new tthib();
//这里 本来是进行数据库操作的。但是出现空指针异常。dao.savet(t);
//我就写了个测试语句,然后发现 t 的值为空。。求大神给我指导下,这是什么原因,怎么解决
try{
FileOutputStream out=new FileOutputStream("D:/test.txt");
PrintStream p=new PrintStream(out);
p.println("This is");
p.println(t);
} catch (FileNotFoundException e){
e.printStackTrace();
}
//dao.savet(t);
return "success";
}
}
数据库操作类
public class tthib {
public void savet(Ttt t){
Session s=null;
Transaction tx=null;
try{
s=HibernateSessionFactory.getSession();
tx=s.beginTransaction();
s.save(t);
tx.commit();
}finally{
HibernateSessionFactory.closeSession();
}
}
}
------解决思路----------------------
id:<input type="text" name="Ttt.id"><br>
name:<input type="text" name="Ttt.name"><br>
password:<input type="text" name="Ttt.password"><br>
这个用你定义的变量名。
在你这里应该用t.name,t.password.t.id。
Ttt.java AbstractTtt.java ttt.hbm.xml都是hibernate自动生成的文件
AbstractTtt.java
public abstract class AbstractTtt implements java.io.Serializable {
private String id;
private String name;
private String password;
public AbstractTtt() {
}
public AbstractTtt(String id, String name, String password) {
this.id = id;
this.name = name;
this.password = password;
}
//...下面是set 和get方法
}
Ttt.java继承了 AbstractTtt.java。就写了一个带参的构造函数和一个无参的构造函数
提交页面的代码如下
<body>
<form action="addmes" method="post">
id:<input type="text" name="Ttt.id"><br>
name:<input type="text" name="Ttt.name"><br>
password:<input type="text" name="Ttt.password"><br>
<input type="submit" value="注册">
</form>
</body>
action的代码
public class addmes {
private Ttt t;
public Ttt getT() {
return t;
}
public void setT(Ttt t) {
this.t = t;
}
public String execute()throws Exception{
//tthib dao=new tthib();
//这里 本来是进行数据库操作的。但是出现空指针异常。dao.savet(t);
//我就写了个测试语句,然后发现 t 的值为空。。求大神给我指导下,这是什么原因,怎么解决
try{
FileOutputStream out=new FileOutputStream("D:/test.txt");
PrintStream p=new PrintStream(out);
p.println("This is");
p.println(t);
} catch (FileNotFoundException e){
e.printStackTrace();
}
//dao.savet(t);
return "success";
}
}
数据库操作类
public class tthib {
public void savet(Ttt t){
Session s=null;
Transaction tx=null;
try{
s=HibernateSessionFactory.getSession();
tx=s.beginTransaction();
s.save(t);
tx.commit();
}finally{
HibernateSessionFactory.closeSession();
}
}
}
------解决思路----------------------
id:<input type="text" name="Ttt.id"><br>
name:<input type="text" name="Ttt.name"><br>
password:<input type="text" name="Ttt.password"><br>
这个用你定义的变量名。
在你这里应该用t.name,t.password.t.id。