这个问题可以重复,并且在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()}" />
但是上面的行没有呈现任何内容,也没有服务器上的错误。可能是什么问题?
答案 0 :(得分:2)
如果要将messageResponse
变量作为属性添加到request
,则必须将其设置为request.setAttribute("messageResponse", messageResponse);
。
<c:out value="${cmdResponse.getMessage()}" />
或者您可以使用
session
当EL在request
中找不到名称时,会尝试<c:out value="${messageResponse.message}" />
。
最后但并非最不重要的是,<c:out value="${cmdResponse.message}" />
(或217.118.93.88#0111473674833.412#0114418687#011...
应该足够了,EL会自己调用相应的getter。