这不是作为例子讲解嘛。假设能取到javabean,就应该要判断,更严谨。
初始化一个空字符串,避免后面判断为空的情况出现异常
setProperty只是对相应的成员变量进行赋值,而getProperty是获取成员变量的属性值,事先没有setProperty当然可以使用getProperty,因为成员变量可以被jsp页面调用其类的的setter方法进行赋值,成员变量未被赋值前,使用getProperty可能会返回null;getProperty和javabean的绑定主要靠useBean动作元素的id属性和getProperty的name属性绑定相同的名字
不是就username吗,你可以在括号里填写想要的属性名
我去看了一下,确实写错了
getUsername这个方法函数是属于Users类的,而由前面getAttribute(这个是内置类request的方法函数)得到的属性,并不知道所得达的属性是否为Users类,因此系统无法对应这个属性实现调用getUsername方法函数。而强制类型转化后,就可以成功实现调用这个getAttribute方法函数了
你的图片裂了
在Tomcat安装目录下,修改server.xml文件,添加URIEncoding="utf-8"
你的testScope.jsp 52行,if(pageContext.getAttribute("username")!null{}
应该是username,而不是javabean的id吧
已经解决了!
無非兩種可能,一個個是方法寫錯了,最好你仔細觀察一下代碼,跟老師的是否一致
你要退出那个页面重新刷新一下再进超链接
记住一点,前一个是创建实例,后一个是从指定范围获取对象,<jsp:userBean>不存在则实例化,存在则返回对象的引用。
如果在一个页面中定义两个范围,会不会默认选择小范围呢,把page那一行注释掉试一下吧
因为你创建的不是包,而是文件夹,
正确的创建方式应该是在src文件夹下创建一个名为com.po.Users的包
再到这个包的下面创建Users.java文件
一般这种方法都是返回一个父类Object的实例,只有强制类型转换为子类对象才能访问子类自定义方法和属性
这个范围就是为了方便从后台JAVA代码取值,赋值到JSP显示到前台,设置的作用域范围
根据业务需求,自己设置获得Javabean的范围。
第一个范围最大要WEB程序关闭了,才失效。
第二个会话。只有浏览器全部关闭,才失效
第三个请求。如果重定向了,不是同一个请求。失效
我导入包了 后来把包名改了错误就没了 谢谢您!!
有效范围是page类型的,这个是用request获取并且强制转换成Users类型,当然会报错
是空字符串
你的类里没有定义用户名
(User)session.getAttribute("myUSer")你这里写错了,是myUser
你的意思是如果设置成别的作用域就能获取到吗
我也获取不到,老师能获取的我获取不到
一个是用javabean获取的,一个是用request获取的
dologin.jsp里面有没有重定向的代码
application赋值并覆盖的。检查一下代码,是否运行了第一次赋值的代码,导致结果不是想要的
你的page没有改吧