如何在 jstl 中调用方法 jsp

how to call method in jstl jsp

这个问题可能是重复的,并且在 Whosebug 上有很多答案。

但我仍然没有明白我的代码中有什么问题。

会话中存储了一个对象,它是 MessageResponse 类型的 cmdResponse class

这就是我从会话中得到的结果

命令响应:

<%
    Object cmdResponse = session.getAttribute("cmdResponse");
    MessageResponse messageResponse = (MessageResponse) cmdResponse;
%>

getMessage() 方法是 getter 方法。这是 MessageResponse class

的代码
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 在 request 中找不到名称时会尝试 session

最后,但同样重要的是,<c:out value="${messageResponse.message}" />(或者<c:out value="${cmdResponse.message}" />应该足够了,EL调用适当的getter哦它自己。