这个问题可能是重复的,并且在 StackOverflow 上有很多答案。
但我仍然不明白我的代码中存在什么问题。
session 中存储了一个对象,该对象是 MessageResponse 类类型的 cmdResponse
这就是我从 session 中得到的信息
命令响应:
<%
Object cmdResponse = session.getAttribute("cmdResponse");
MessageResponse messageResponse = (MessageResponse) cmdResponse;
%>
有 getMessage() 方法,它是 getter 方法。这是MessageResponse类的代码
public class MessageResponse extends Response {
String message;
public MessageResponse() {
// TODO Auto-generated constructor stub
}
public MessageResponse(String command, String message) {
super(command);
this.message = message;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}
这就是我尝试渲染的方式
<c:out value="${messageResponse.getMessage()}" />
但是上面的行在服务器上没有呈现任何内容,也没有错误。可能是什么问题?
最佳答案
您必须输入 messageResponse
变量作为 request
的属性,如果您想从 EL 访问它。
request.setAttribute("messageResponse", messageResponse);
或者你可以使用
<c:out value="${cmdResponse.getMessage()}" />
当 EL 尝试 session
时当它在 request
中找不到该名称时。
最后但并非最不重要的一点是,<c:out value="${messageResponse.message}" />
(或者 <c:out value="${cmdResponse.message}" />
应该足够了,EL 自己调用适当的 getter 哦。
关于java - 如何在jSTL jsp中调用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39447592/