我PersonBean在会话范围内定义了bean 。
PersonBean
我想要的是PersonBean.personId在jsp页面中找到。
PersonBean.personId
我希望在jsp页面中使用它,因为我想基于此进行一些计算personId。任何人都知道如何获得相同的东西。
personId
在JSP中,我可以使用jsf进行打印
<h:outputText value="#{PersonBean.personId}" />
但是我需要将此值分配给jsp中的某个整数值,如下所示。
<h:outputText value="#{PersonBean.personId}" /> <% int i = new PersonBean().getPersonId; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ %>
我以为int i = new PersonBean().getPersonId;可以,但是不起作用。我知道如何得到这个吗?
int i = new PersonBean().getPersonId;
我也试过
<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。
my id is 0
注意:
使用时,<h:outputText value=#{PersonalInformationDataBean.personId} />我会得到正确的输出。
<h:outputText value=#{PersonalInformationDataBean.personId} />
您应该避免在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概念的知识。
new PersonBean()