【发布时间】:2011-08-27 09:36:02
【问题描述】:
如何将数据从 java 类(不是 servlet)填充到 jsp 页面。 一种方法是 jspservletjava 类....
有没有不使用servlet..jspjava类的直接方法??
【问题讨论】:
-
您为什么要这样做?它使代码更难维护,错误处理也变得更加痛苦。另见stackoverflow.com/questions/3177733/…
如何将数据从 java 类(不是 servlet)填充到 jsp 页面。 一种方法是 jspservletjava 类....
有没有不使用servlet..jspjava类的直接方法??
【问题讨论】:
您可以通过将 jar 放入 webapp 的 libs 文件夹(如果您还没有这样做)然后导入您的 jsp 来将您的类导入 jsp:
<%@ page import="com.mypkg.MyClass" %>
完成后,您可以像往常一样在 jsp 中使用您的类:
<select>
<%
MyClass instance = new MyClass();
for(int i=0;i<instance.itemCount();i++){
out.println("<option>"+instance.getItem(i).getName()+"</option>");
}
%>
</select>
总体上更可取的另一种方法是创建一个使用您的类的 TagLibrary。与在 jsp 中使用 Java 代码相比,TagLibraries 更简洁、更易于支持和理解。 Sun 的使用和创建标签库的指南非常好: http://java.sun.com/products/jsp/tutorial/TagLibraries3.html
【讨论】:
呈现jsp页面的是servlet容器。将数据传递给 jsp 的唯一方法(有一个可能的例外)是在 HttpServletRequest(请求范围)、HttpSession(会话范围)或 ServletContext 本身(应用程序范围)上设置属性。所以你的问题的简短回答是否定的。
也就是说,我可以想到其他几种可能性,让其他类将数据获取到 jsp(或至少将其呈现在页面上):
希望这会有所帮助。顺便说一句,如果您对您要完成的工作进行更详细的解释,将会有所帮助。
【讨论】: