在jsp中执行对象方法

时间:2015-04-21 12:53:33

标签: java jsp servlets

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

我有一个servlet,它将一个对象传递给一个jsp页面。在此页面上,我想执行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>";
    }
}

1 个答案:

答案 0 :(得分:1)

您可以这样做:

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

由于它是一个属性,并且带有 get 前缀,您也可以这样做:

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

或者通过这种方式来替换HTML字符以避免跨站点脚本:

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

所有这些方法都假设这些方法返回一个String。如果您需要一个动态HTML,那就没关系。如果你在JSP中做一些业务逻辑,那么它将被视为一种潜在的不良做法。尝试在控制器或服务中放置尽可能多的逻辑,并将结果预处理为属性或使用jsp标记。在某些时候,jsp的html需要改变,否则你会使用html。