日期:2014-05-18  浏览次数:20670 次

servlet无法传递消息到jsp的问题
前面用的都还可以,但今天再用就不行了。。。
servlet中代码如下:
request.setAttribute( "userInfo ",userInfo);
request.setAttribute( "showMessage ",showMessage);//一个servlet中定义的string
RequestDispatcher   rd   =   request.getRequestDispatche( "/user/userModify.jsp ");
rd.forward(request,response);
jsp中代码如下:
<jsp:useBean   id= "userInfo "   scope= "request "class= "com.j9.jsp.beans.user.UserInfoBean "/>
<jsp:getProperty   name= "userInfo "   property= "email "/>
我在另外一个网页中也用了这个方法,可以,但这次用,怎么都不行了。。。求救。。。很着急,眼看着马上就做完,又在这里卡了一天了。。。
还有就是我在bean的创建函数中初始化了数据库,但如果是因为这个影响,那为什么那个showMessage也不能传递。。。麻烦大家了。。。~

------解决方案--------------------
检查com.j9.jsp.beans.user.UserInfoBean中是否有getEmail()方法?
------解决方案--------------------
因为你的代码比较多,还有一些具体的业务逻辑我也不太清楚,我建议你在servlet里设一个断点,然后单步调试,调试时注意观察UserInfoBean的email属性的值,看值是否正确(监视这个值),还有看request.setAttribute( "userInfo ",userInfo);这条语句是否有被调用,注意看一下这两方面,应该能找到原因。
------解决方案--------------------
out.println(request.getAttribute( "userInfo "))//这样在JSP中测试一下
------解决方案--------------------
修正一下: <jsp:useBean id= "userInfo " scope= "request "class= "com.j9.jsp.beans.user.UserInfoBean ">
<jsp:getProperty name= "userInfo " property= "email "/>
</jsp:useBean>
===================================================================
<jsp:userBean> 这个标签创建bean前先判断在:scope表示的范围内,类型为class所表示的,名字为id属性指定的对象是否已经存在,如果存在就不执行这个标签体,相当于把这个对象引入到此 .jsp 页面