我正在创建一个bean实例并在1 jsp页面中设置它的值,并且在session属性中设置该bean之后,我试图使用jsp操作检索该bean的值。
在第一个jsp页面中,我使用new关键字创建Person的实例,然后在会话中将其设置为属性。
在第二页上,我尝试使用jsp:getProperty标签打印Person的名称。
第二页中的值为空。
第一页的代码如下
<%
String username=request.getParameter("username");
String password=request.getParameter("password");
if((username.equals("ravi") && password.equals("kumar")))
{
Person person = new Person();
person.setName(username);
session.setAttribute("username",person);
response.sendRedirect("Home.jsp");
}
else
response.sendRedirect("Error.jsp");
%>
第二页的代码如下:
<jsp:useBean id="person" class="com.ravi.entity.Person" scope="request"/>
Person created by Servlet <jsp:getProperty name="person" property="name"/>
任何人都可以帮忙吗?
答案 0 :(得分:2)
第一个JSP页面将人员存储在会话中。第二个JSP页面尝试从请求中获取它。这就是你得到null的原因:
<jsp:useBean id="person" class="com.ravi.entity.Person" scope="request"/>
You should have "session" here ---^
请注意,jsp:useBean和scriptlet不应该在JSP中使用超过十年。学习JSP代码的JSP EL,JSTL和用户servlet,或MVC框架。