一尘不染

如何在JSP中获取Bean数据

jsp

PersonBean在会话范围内定义了bean 。

我想要的是PersonBean.personId在jsp页面中找到。

我希望在jsp页面中使用它,因为我想基于此进行一些计算personId。任何人都知道如何获得相同的东西。

在JSP中,我可以使用jsf进行打印

<h:outputText value="#{PersonBean.personId}" />

但是我需要将此值分配给jsp中的某个整数值,如下所示。

<h:outputText value="#{PersonBean.personId}" />
<%
   int i = new PersonBean().getPersonId;
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
%>

我以为int i = new PersonBean().getPersonId;可以,但是不起作用。我知道如何得到这个吗?

更新1

我也试过

<jsp:useBean id="sessionPersonalDataBean" class="com.sac.databean.PersonalInformationDataBean" scope="session"/>
<%
   out.print("my id is " + sessionPersonalDataBean.getPersonId());
%>

我仍然得到输出my id is 0而不是my id is 0

注意:

使用时,<h:outputText value=#{PersonalInformationDataBean.personId} />我会得到正确的输出。


阅读 571

收藏
2020-06-08

共1个答案

一尘不染

您应该避免在JSP中使用scriptlet,而是要回答您的问题:JSP是servlet。如果将bean存储在会话范围内的“
PersonBean”属性下,则只需从会话中获取它即可:

PersonBean p = (PersonBean) request.getSession().getAttribute("PersonBean");

如果将其存储在属性“ PersonalInformationDataBean”下,则代码当然是

PersonBean p = (PersonBean) request.getSession().getAttribute("PersonalInformationDataBean");

该代码new PersonBean()创建了一个新的PersonBean实例,因此,当然没有理由使该实例具有与会话中存储的实例相同的ID。这是相当基本的Java知识,我建议您在使用JSF之前学习一些有关Java语言和基本OO概念的知识。

2020-06-08