从java类将数据填充到jsp中

时间:2011-05-17 16:22:57

标签: java jsp servlets

如何将java类(不是servlet)中的数据填充到jsp页面上。 一种方法是jsp< - > servlet< - > java class ....

是否有直接的方法而不使用servlet..jsp< - > java class ??

2 个答案:

答案 0 :(得分:1)

你可以通过将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

答案 1 :(得分:0)

这是呈现jsp页面的servlet容器。将数据传递给jsp的唯一方法(有一个可能的例外)是通过在HttpServletRequest(请求范围),HttpSession(会话范围)或ServletContext本身(应用程序范围)上设置属性。所以对你的问题的简短回答是否定的。

也就是说,我可以想到让其他类将数据传递给jsp(或者至少让它在页面上呈现)的其他一些可能性:

  • 您可以将上述对象之一传递给另一个类,并让该类将数据设置为适当范围内的属性。
  • 您可以编写一个自定义jsp标记,该标记将使用您的一个类在jsp中呈现数据。有关如何执行此操作,请参阅here
  • 您可以使用javascript进行Ajax调用,返回json,xml,html等,然后将数据写入页面。

希望这会有所帮助。顺便说一句,如果你对你想要完成的事情做了更详细的解释,那将会有所帮助。