java - 简单的JSP表达式语言代码将无法工作

标签 java jsp jakarta-ee servlets jstl

我有一个 Person 类和 Dog 类。人有一只狗。我从一个简单的 html 文件向 servlet 发送一个 post http 请求。在 servlet 中,我将一个人和他的狗添加为请求的属性。 servlet 将此请求转发到 jsp,该 jsp 应该使用表达式语言或 EL 打印狗的名字。

我按照书中的所有说明进行操作,但得到了错误的输出。请 帮助我修复我的代码。

预期输出 - 狗的名字是:dog。 实际输出 - 狗的名字是:

Servlet 的 doPost -

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    Person p = new Person();
    Dog d = new Dog();

    p.setName("Man");
    d.setName("dog");

    request.setAttribute("person", p);

    RequestDispatcher view = request.getRequestDispatcher("/jsp/MyJsp.jsp");
    view.forward(request, response);

}

JSP主代码-

<html>
<body>
Dog's name is: ${person.dog.name}
</body>
</html>

Pojos 和 stacktrace 的完整代码 -

狗-

package foo;

public class Dog {

    private String name;

    public String getName() {return name;}

    public void setName(String name) {this.name = name;}

}

人 -

包foo;

公共(public)类人{

String name;
Dog dog;

public String getName() {return name;}
public void setName(String name) {this.name = name;}

public Dog getDog() {return dog;}
public void setDog(Dog dog) {this.dog = dog;}

}

我再次重新启动 eclipse 和 tomcat,我的代码工作了。

最佳答案

您尚未为该人设置狗。

p.setDog(d);  

关于java - 简单的JSP表达式语言代码将无法工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23796368/

相关文章:

java - 将 CRYPT_RSA_PUBLIC_FORMAT_PKCS1 从 php 转换为 Java 中的 RSA 公钥

java - 如何创建三个简单的自定义进度View?

java - 无法在屏幕上正确显示用户和接收者发送的聊天

java - 使用 bat 文件命令更改 Java 控制面板设置

java - JSTL fmt 不工作

jsp - 当index是一个变量时,如何在jsp中访问arraylist的元素?

java - 如何在Liferay 6.06中更新更改数据库密码?

java - 使用ajax查询提交html数据

java - 是否可以覆盖 jboss-web.xml 文件中的设置?

java - 从 extjs 打印 pdf - 最佳解决方案