我想从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>";
}
}
答案 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。