这个问题可以重复,并且在StackOverflow上有很多答案。
但是我仍然没有得到代码中的问题。
会话中存储的对象是MessageResponse类的cmdResponse
这就是我从会议中得到的
命令响应:
<%
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()}" />
但上面的行不显示任何内容,并且在服务器上没有错误。可能是什么问题?
最佳答案
如果要使EL可以访问messageResponse
变量,则必须将其作为request
的属性。
request.setAttribute("messageResponse", messageResponse);
或者你可以使用
<c:out value="${cmdResponse.getMessage()}" />
当EL在
session
中找不到名称时尝试使用request
。最后但并非最不重要的一点是,
<c:out value="${messageResponse.message}" />
(或<c:out value="${cmdResponse.message}" />
应该足够了,EL自己调用适当的吸气剂。