注册 登录
编程论坛 J2EE论坛

[求助]关于userBean的问题

NiceGirl 发布于 2006-12-26 00:20, 1035 次点击

运行环境tomcat5.5.12,现有一页面和一javaBean

<%@page contentType="text/html;charset=gb2312" %>
<jsp:useBean id="user" class="com.yj.User" scope="page"> //问题出在这里,我输入用户名点登陆提交的还是这个页面
<jsp:setProperty name="user" property="*"/> //如果scope设为page,则能显示出loginname,而我设为
</jsp:useBean> //session,为什么获取不到值?session的范围大于page啊
<html>
<body>
<h1>用户登陆</h1>
<form action="login1.jsp" method="post">
<table>
<tr>
<td>用户名</td>
<td><input type="text" name="loginname" value="${user.loginname}"></td>
</tr>
<tr>
<td>密码</td>
<td><input type="password" name="password"></td>
</tr>
<tr>
<td>真实姓名</td>
<td><input type="text" name="username"></td>
</tr>
<tr>
<td>年龄</td>
<td><input type="text" name="age"></td>
</tr>
<tr>
<td>地址</td>
<td><input type="text" name="address"></td>
</tr>
<tr>
<td align="right"><input type="submit" value="登录"></td>
<td><input type="button" value="注册"></td>
</tr>
</table>
</form>
</body>
</html>

javaBean

package com.yj;

public class User {
private String loginname = "";
private String password = "";
private String username = "";
private int age = 0;
private String address = "";

public void setLoginname(String loginname) {
this.loginname = loginname;
}
public String getLoginname() {
return loginname;
}

public void setPassword(String password) {
this.password = password;
}
public String getPassword() {
return password;
}

public void setUsername(String username) {
this.username = username;
}
public String getUsername() {
return username;
}

public void setAge(int age) {
this.age = age;
}
public int getAge() {
return age;
}

public void setAddress(String address) {
this.address = address;
}
public String getAddress() {
return address;
}
}

8 回复
#2
禹_二2006-12-26 17:14
代码好像有点问题,好像没什么实际意义.
#3
NiceGirl2006-12-26 18:44
已经解决,谢谢大家。
#4
小毛驴儿2006-12-26 19:36

是怎么解决的应该告诉大家,这样才能互相帮助啊.也许别人也遇到这样的问题,而你的方法很好啊,或者别人有更好的方法,这样才能共同进步的啊

#5
禹_二2006-12-26 21:01

是得,怎么解决!!

#6
NiceGirl2006-12-29 15:17
问题出在还是对Bean作用范围没有理解透彻。
如果我Bean范围设为page,那么当这个页面加载时,setProperty标签已将控件里的值放进了Bean里,而这时我还没有进行输入;当我输入后,点提交,因为Bean的范围为page(当加载新页面时销毁),那么这个包含空值的Bean被销毁,而填了值后的控件通过setProperty标签将值放进了新的Bean的对象里,那么在新的页面里所以我能得到我输入的值

如果把Bean范围设为session,那么只要在一个会话里,那个包含空值的Bean永远不会被销毁,所以我得到的是空值

[此贴子已经被作者于2006-12-29 16:08:03编辑过]

#7
angeloc2006-12-31 10:37
恩,不错
#8
一二三四五2006-12-31 12:53
就是,支持一下,希望大家都能分享一些自己的学习经验
#9
distorting2007-01-04 23:21
Bean 我觉得应该implements Serializable
如果要在同一个session的多个页面之间可以传递BEAN的内容,好象要实现序列化接口的,
1