在 jsp 中执行对象方法

Execute object method in jsp

我想从 jsp 中的对象调用方法。

我有一个将对象传递给 jsp 页面的 servlet。在此页面上,我想执行 getHtml() 方法。我该如何实现?

Servlet

protected void doPost(HttpServletRequest request,
        HttpServletResponse response) throws ServletException, IOException {
    ...
    MyClass myObject = new MyClass();
    response.setAttribute(myObject, "myObject");
    RequestDispatcher rd = request.getRequestDispatcher("/index.jsp");
    rd.forward(request, response);
}

MyClass

public class MyClass {
    public String getHtml() {
        return "<p>Hello World</p>";
    }
}

你可以这样做:

<div>${myObject.getHtml()}</div>

因为它是 属性 并且带有 get 前缀,您也可以这样做:

<div>${myObject.html}</div>

或者用这种方式转义 HTML 个字符以避免跨站点脚本:

<div><c:out value="${myObject.hHtml}"/></div>

所有这些方法都假设这些方法 return 是一个字符串。如果你需要一段动态 HTML 就可以了。如果您在 JSP 中执行某些业务逻辑,这将被视为潜在的不良做法。尝试在控制器或服务中放置尽可能多的逻辑,并将结果预处理为属性或使用 jsp 标记。在某些时候,jsp 的 html 需要更改,否则您将使用 html 代替。