我有一个java类,它对文件执行一些操作。因为java代码很大,所以我不想用jsp编写这段代码。我想在需要的时候调用jsp中的方法。
请告诉我需要保存此文件的路径。另外,一些如何使用它的示例代码也会很有帮助。
发布于 2010-03-01 16:35:43
我认为问题是,如何使Java代码对JSP可用?您可以让它像任何其他Java代码一样可用,这意味着需要将它编译成.class文件并放在类路径中。
在web应用程序中,这意味着类文件必须存在于应用程序的.war文件或目录中的WEB-INF/classes下,其目录结构与其软件包相匹配。因此,将这段代码与所有其他应用程序Java代码一起编译和部署,它应该放在正确的位置。
注您将需要在JSP中导入您的类,或者使用完全限定的类名,否则您可以使用<% %>语法编写您喜欢的任何Java代码。
您还可以使用<%!%>语法(请注意!)在其他实用程序JSP中声明方法,导入JSP,然后调用在这样的块中声明的方法。不过这是一种糟糕的风格。
发布于 2010-03-01 15:05:46
在servlet (在JSP之前运行)中:
Person p = new Person(); // instantiate business object
p.init(...); // init it or something
request.setAttribute("person", p); // make it available to the template as 'person'
在模板中,您可以使用以下内容:
your age is: ${person.age} <%-- calls person.getAge() --%>
发布于 2010-03-01 19:46:44
根据您想要调用的操作类型,您通常会使用标记库、EL函数或servlet。Java代码真的,真的不属于JSP文件,而是属于Java类。
如果要预处理请求,请使用Servlet doGet()
方法。例如。
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// Preprocess request here.
doYourThingHere();
// And forward to JSP to display data.
request.getRequestDispatcher("page.jsp").forward(request, response);
}
如果希望在提交表单后对请求进行后处理,请改用Servlet doPost()
方法。
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// Postprocess request here.
doYourThingHere();
// And forward to JSP to display results.
request.getRequestDispatcher("page.jsp").forward(request, response);
}
如果您想控制页面流和/或HTML输出,请使用JSTL core taglib或create custom tags之类的标记库。
如果您想要执行静态/帮助函数,请使用EL函数,如JSTL fn taglib或create custom functions。
https://stackoverflow.com/questions/2354293
复制相似问题