我有一个 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/