Java 如何在会话的帮助下通过Bean将参数从Servlet传递到JSP页面?

Java 如何在会话的帮助下通过Bean将参数从Servlet传递到JSP页面?,java,jsp,session,servlets,javabeans,Java,Jsp,Session,Servlets,Javabeans,如下所述,我对代码进行了更改,看起来像下面的示例,但在JSP中没有显示firstname和lastname: Servlet代码: //.... HttpSession session = request.getSession(); Person person = (Person) session.getAttribute("person"); if (person == null) { person = new Person(); } per

如下所述,我对代码进行了更改,看起来像下面的示例,但在JSP中没有显示firstname和lastname:

Servlet代码:

//....
HttpSession session = request.getSession();
Person person = (Person) session.getAttribute("person");
if (person == null) {
    person = new Person();                      
}
person.setNewId(newId);
person.setFirstName(firstName);
person.setLastName(lastName);
session.setAttribute("person", person);

RequestDispatcher rd = request.getRequestDispatcher("jsp Address");
rd.forward(request, response);
个人Bean代码:

private int newId;
private String firstName;
private String lastName;

// Default Constructor
public Person() {}

public Person(int newId, String firstName, String lastName) {
    setNewId(newId);
    setFirstName(firstName);
    setLastName(lastName);
}

//Getter and Setter Methods
public int getNewId() {return newId;}
public void setNewId(int newID) {this.newId = newID;}
public String getFirstName() {return firstName;}
public void setFirstName(String FirstName) {this.firstName = FirstName;}
public String getLastName() {return lastName;}
public void setLastName(String LastName) {this.lastName = LastName;}
在JSP代码中:

<jsp:useBean id="person" type="app.models.Person" scope="session">
    <jsp:getProperty name="person" property="firstName" />
    <jsp:getProperty name="person" property="lastName" />
</jsp:useBean>
摆脱
。当使用
type
属性而不是
class
时,它不会检查范围中是否已经有实例,它将使用新的、空白的、默认构造的实例来覆盖您在servlet中创建的
Person
实例

当使用“MVC架构”时,
标记是无用的。卸下它,只需使用“常用”即可访问它:

${person.firstName} ${person.lastName}
或者更好的方法是,使用



您如何访问jsp?--另外,Person类EDIT中没有空构造函数:只是看到了关于空构造函数的响应。您能澄清一下您是如何访问servlet/jsp的吗?我正在使用来自servlet的RequestDispatcher将控制转移到命名jsp。我有一个默认构造函数。编辑:我通过请求调度器通过DD和JSP访问servlet。在您将此代码部署到servlet容器之后,我希望您首先访问servlet?日志中有任何异常吗?在发送请求之前是否尝试添加一些日志?否!我没有任何例外。但是我的JSP没有捕获通过JSP>>Servlet传递的参数。我建议使用
,但这也不起作用。不知道为什么。@CoolBeans:啊,那么要么是没有正确重建,要么是他用错误的方式运行JSP(直接调用JSP URL而不是servlet URL)。我只是使用表达式语言,而不是它的工作方式。非常感谢。
${person.firstName} ${person.lastName}
<c:out value="${person.firstName} ${person.lastName}" />