假设以下 JSP 标签
<%! public void test(){} %>
是否可以在jsp页面中定义一个方法(例如上面的test()方法),然后从servlet类中调用它?
如果答案是肯定的,那么该怎么做呢?
如果答案是否定的,那为什么呢?
(我知道在运行 JSP 页面之前,Web 服务器会将其编译为 servlet 类)
最佳答案
通常发生的情况是将请求映射到 servlet,然后 servlet 转发到 JSP。
String nextJSP = "/searchResults.jsp";
RequestDispatcher dispatcher = getServletContext().getRequestDispatcher(nextJSP);
dispatcher.forward(request,response);
您无法在 JSP 上调用方法,因为 servlet 无法直接访问已编译的 JSP,它只能访问调度程序。
但通常所做的是在 servlet 中设置请求属性,然后 JSP 可以获取这些属性。
因此,在 JSP 的顶部,您可以执行类似的操作
<% if(request.getAttribute("doTest")) then test(); %>
关于java - 是否可以在 JSP 中定义一个方法并从 servlet 调用它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32295497/