0

我将bean定义为PersonBean会话范围。

我想要的是找到PersonBean.personIdin 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} />我得到了正确的输出。

4

1 回答 1

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 概念的知识。

于 2012-07-07T11:32:11.910 回答