Java 是否可以在JSP中定义一个方法并从servlet调用它
假设以下JSP标记Java 是否可以在JSP中定义一个方法并从servlet调用它,java,jsp,servlets,Java,Jsp,Servlets,假设以下JSP标记 <%! public void test(){} %> 是否可以在jsp页面中定义一个方法(例如上面的test()方法),然后从servlet类调用它? 如果答案是肯定的,那怎么做呢? 如果答案是否定的,那么为什么呢 (我知道在运行JSP页面之前,web服务器会将其整合到一个servlet类中)通常发生的事情是将请求映射到servlet,然后servlet转发到JSP String nextJSP = "/searchResults.jsp"; Reques
<%! 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(); %>
通常发生的情况是将请求映射到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(); %>
@pL4Gu33是不是正好相反?哦,对不起,我弄错了。。。。你是对的。。。我删除了无用的注释:)JSP是视图,而不是控制器。不管你想要什么,都会破坏MVC的理念。@pL4Gu33是不是正好相反?哦,对不起,我错了。。。。你是对的。。。我删除了无用的注释:)JSP是视图,而不是控制器。无论你想要什么都会破坏MVC的理念。