我在servlet里得到一个List,里面装的是某一个文件夹下的全部文件名.我怎么把化显示在jsp页面中..而且能够选取其中的某一个文件.并且下载该文件呢..下载的办法我有了.就是不知道jsp里怎么显示能够选取的列表

解决方案 »

  1.   

    servlet里面把list set 到request或session里面去,jsp用for循环显示。
    如果用了struts框架,可以用它的标签,或者用el表达式。
      

  2.   

    这样是可以把list遍历到jsp中.但是有什么办法能够在jsp中选取其中某一条呢
      

  3.   

    可以用
    <%
    for(int i=0;i<lst.size();i++){
    %>
    <a href="download.servlet?fileId=<%=lst.get(i).getFileId%>"><%=lst.get(i).getFileName%></a>
    <%
    }
    %>
    来取值,download.servlet跳到你下载那个servlet,传入文件id来确定是哪个文件并进行下载。
    另外如果要以表格方式显示,那就在for外面加<table>标签,里面再tr标签一个个加
      

  4.   

    对了..我想搞一个判断..当jsp中的list不为空时执行这段代码该怎么办呢...谢谢了
    <% 
    for(int i=0;i <lst.size();i++){ 
    %> 
    <a href="download.servlet?fileId= <%=lst.get(i).getFileId%>"> <%=lst.get(i).getFileName%> </a> 
    <% 

    %> 
      

  5.   

    前面加 if(lst!=null&&lst.size()>0){
     for
      

  6.   

    我jsp中能够得到list
    但是为什么一加 if(list!=null&&list.size()>0){ 
       <% 
    for(int i=0;i <list.size();i++){ 
    %> 
    <a><%=list.get(i) %></a>
    <% 

    %> 
      }
    就会报空指针异常呢
      

  7.   

    你的if是放在jsp页面的,你要把java代码放到<%%>对里面去
      <%
    if(list!=null&&list.size()>0){
    for(int i=0;i <list.size();i++){
    %>
    <a> <%=list.get(i) %> </a>
    <%
    }
      } 
    %>
      

  8.   

    报了空指针异常,可能页面获取的list就是个null,根本没取到你要的那个list,所以for里面list.size()报空指针
      

  9.   

    这是servlet里的代码
    public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException{
    response.setContentType("text/html");    
            PrintWriter out = response.getWriter();    
    String s=request.getParameter("txtDate");
    String ss=s.replace("-", "");
    ArrayList l=new ArrayList();
    try {
    //URL url = new URL("http://136.5.68.7:8080/creport/filelist?dir="+ ss);
    URL url = new URL("http://localhost:8080/ftpdowns/MyServlet");
    HttpURLConnection urlcon = (HttpURLConnection) url.openConnection();
    urlcon.connect();
    BufferedReader in = new BufferedReader(new InputStreamReader(urlcon
    .getInputStream()));
    String inputLine;
    while ((inputLine = in.readLine()) != null) {
    l.add(inputLine);
    }
    } catch (Exception e) {
    }
    request.setAttribute("list", l);
    response.sendRedirect("index.jsp");
    }
      

  10.   

    这是jsp中的代码..为什么jsp得到的值为空呢..我测试过.在servlet里是可以得到list的
    <%List list=(List)request.getAttribute("list"); %>
        <% 
        if(list!=null&&list.size()>0){ 
    for(int i=0;i <list.size();i++){ 
    %> 
    <a> <%=list.get(i) %> </a> 
    <% 

    }
    %> 
      

  11.   

    放在session或request中在jsp中取出来就可以了
      

  12.   

    认真阅读以下代码,因为你的里面使用了 response.sendRedirect(.*****)....request.setAttribute()怎么用的?
    JSP1代码
    String [] test=new String[2];
    test[0]="1";
    test[1]="2";
    request.setAttribute("test",test) ;
    response.sendRedirect("jsp2.jsp");JSP2代码
    String test[]=(String[])request.getAttribute("test");
    out.print(test);为什么JS P2中会找不到test?用来在同一个request周期中保存变量使用。比如servlet调用后,推出JSP页面,这是一个request周期,如果在Jsp页面需要servlet中的一些 处理结构,就从request.getAttribute中获取。sendRedirect()方法是通过浏览器重定向的,所以第二个JSP页面中获得的request并非是前一个页面的request(两次请求生成了前后两个不同的 request对象了)。
    用RequestDispatcher接口的forward()方法试试看。都在一起使用List list = new CommonsDao().getAllCommons();
      request.setAttribute("CommonsList", list);
      request.getRequestDispatcher("View.jsp").forward(request, response);
    request.getAttribute()与request.setAttribute()request.getAttribute("nameOfObj")可得到JSP页面一表单中控件的Value。其实表单控件中的Object的 name与value是存放在一个哈希表中的,所以在这里给出Object的name会到哈希表中找出对应它的value。而不同页面间传值使用request.setAttribute(position, nameOfObj)时,只会从a.jsp到b.jsp一次传递,之后这个request就会失去它的作用范围,再传就要再设一个 request.setAttribute()。而使用session.setAttribute()会在一个过程中始终保有这个值。P.S.:JavaScript与JSP中不能相互传值,因为JavaScript运行在客户端,而JSP运行在服务器端。若想使它们之间可以相互传递参数,可以在JSP中设置一个hidden控件,用它的value结合上面所说的用法来传递所需的数值。