将数组列表从Servlet传输到JSP



我有一些问题。我有从数据库创建列表的功能

public List<Langganan> getlistLanggananID(String kode){
    System.out.println(kode);
    List<Langganan> tokoList = new ArrayList();
    try {
       String sql = "SELECT idms_langganan, nama_langganan, alamat, kota FROM ms_langganan WHERE idms_langganan = " + "'" + kode + "'";
       Connection conn = datman.logOn();
       Statement st = (Statement) conn.createStatement();
       ResultSet rs = st.executeQuery(sql);
       /* get result from list */
       while (rs.next()){
          Langganan lg = new Langganan();
          lg.setKodelangganan(rs.getString("idms_langganan"));
          lg.setNama(rs.getString("nama_langganan"));
          lg.setAlamat(rs.getString("alamat"));
          lg.setKota(rs.getString("kota"));
          tokoList.add(lg);
       }
    } catch (Exception se) {
        Logger.getLogger(MasterLangganan.class.getName()).log(Level.SEVERE, null, se);
        java.lang.System.out.println("Error on Function MasterLangganan Show List: " + se.toString());   
    }
    return tokoList;
}

基于特定ID的it返回列表-->kode

然后我通过servlet 执行该功能

 protected void processRequest(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    try {
       String kode = request.getParameter("kode");
       MasterLangganan ml = new MasterLangganan();
       ml.getlistLanggananID(kode);
        /* sending list to JSP page */
        request.setAttribute("listlangganan",ml.getlistLanggananID(kode));
    } catch(Exception es){
        Logger.getLogger(setSettings.class.getName()).log(Level.SEVERE, null, es);
    }finally {            
       java.lang.System.out.println("setSettings Servlet has been executed");
    }
}

但是如何将结果从servlet发送到jsp页面呢?因为我在jsp页面上得到的只是一个错误

这是JSP页面

 <div class="panel-heading">
  <h3 class="panel-title"><i class="fa fa-bar-chart-o"></i> Tambah Langganan</h3>
 </div>
     <%
          MasterLangganan ml = new MasterLangganan();
          ml.getlistLanggananID("000");
     %>
  <div class="panel-body">
     <form name="system_settings" method="POST" action="<%=request.getContextPath() %>/setDataLangganan">
        <div class="col-lg-6">
          <p>Nama</p> 
          <input type="text" class="form-control" name="nama_langganan" readonly="readonly" id="nama_langganan" value="<% ((Langganan)request.getAttribute("listlangganan")).getNama(); %>">
          <p>Alamat</p>
          <input type="text" class="form-control" name="alamat" readonly="readonly" id="alamat" value="<% ((Langganan)request.getAttribute("listlangganan")).getAlamat(); %>">
          <p>Kota</p>
          <input type="text" class="form-control" name="kota" readonly="readonly" id="kota" value="<% ((Langganan)request.getAttribute("listlangganan")).getKota(); %>">
          <p>Sales Area</p>
          <input type="text" class="form-control" name="salesarea" readonly="readonly" id="salesarea" value="<% ((Langganan)request.getAttribute("listlangganan")).getSalesArea(); %>">
</div>
  <div class="col-lg-6">
    <p>Actions</p>
      <input type="button" class="btn btn-info" value="Edit" name="edit" id="edit">
      <input type="button" class="btn btn-warning" value="Cancel" name="cancel" id="cancel">
      <input type="submit" class="btn btn-danger" value="Save" name="save" id="submit" style="display: none;" >
 </div>
</form>

我只需要把列表放在文本字段中,这样它就可以编辑了。

怎么做才合适?

提前谢谢。

String kode = request.getParameter("kode");在你的帖子中你提到kode是一个id,所以request.getParameter("kode");不起作用让它工作做一个像这样的隐藏字段

<input type ="hidden" name="kode" value="<%=values you want to pass%>"> and submit this hidden field along with the form.Then only you can receive using `request.getParameter()`

从Servlet向JSP 传输数组列表

您需要转发到JSP页面

request.setAttribute("listlangganan",ml.getlistLanggananID(kode));
request.getRequestDispatcher("MyJSP.jsp").forward(request,response);

MyJSP.jsp

 <c:forEach items="${listlangganan}" var="item">
  <!--Here populate the data to table or div-->    
 </c:forEach>

最新更新