jsp 取java文件中变量值
来源:百度知道 编辑:UC知道 时间:2024/06/04 16:59:51
比如 java文件中 类名:UserDao
public int loginNum=0;
public int getLoginNum() {
return loginNum;
}
public void setLoginNum(int loginNum) {
this.loginNum = loginNum;
}
而我在jsp 这样引用
<%
new UserDao().setLoginNum(5);
out.print(new UserDao().getLoginNum()); // 结果居然是0啊 这是为什么呢?
%>
public int loginNum=0;
public int getLoginNum() {
return loginNum;
}
public void setLoginNum(int loginNum) {
this.loginNum = loginNum;
}
而我在jsp 这样引用
<%
new UserDao().setLoginNum(5);
out.print(new UserDao().getLoginNum()); // 结果居然是0啊 这是为什么呢?
%>
<%
new UserDao().setLoginNum(5);
//这里创建了一个对象 设值5
//而你输出时又创建了一个对象, 这完全是2个不同的对象
out.print(new UserDao().getLoginNum());
%>
这就好比你去超市,把物品存在2号柜,却跑到3号柜里取,肯定是没有的
你可以这样:
<%
UserDao ud = new UserDao();
ud.setLoginNum(5);
out.print(ud.getLoginNum()); //这样才是基于一个对象操作
%>
new UserDao().setLoginNum(5)是一个对象
你的输出new UserDao().getLoginNum()是另外一个对象,他的默认值是你在创建UserDao对象时,初始化的值:public int loginNum=0;
解决办法:
UserDao u = new UserDao();
u.setLoginNum(5);
out.print(u.getLoginNum());
看来你没有把面向对象的含义理解好啊。。。
out.print(new UserDao().getLoginNum()); 这里你又新new了一个,不等于0等于什么