【问题标题】:Transferring Array List from Servlet to JSP将数组列表从 Servlet 传输到 JSP
【发布时间】:2013-12-03 11:53:23
【问题描述】:

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

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返回列表 --> 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>

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

如何正确地做到这一点?

提前致谢。

【问题讨论】:

  • 你得到什么错误?
  • Stacktrace:] 在 org.apache.jasper.runtime.HttpJspBase.service 的 org.apache.jsp.system.langganan_jsp._jspService(langganan_jsp.java:205) 的根本原因是 java.lang.NullPointerException (HttpJspBase.java:70)
  • 顺便说一句,您必须使用 &lt;%= %&gt; 而不是 &lt;% %&gt; 来填充 JSP(或获取输出流并自己写入)。
  • @Thomas 感谢您的建议 thomas!

标签: java jquery jsp servlets


【解决方案1】:

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()`

【讨论】:

  • 我为此放置了一些静态代码,仅用于测试目的.. ml.getlistLanggananID("000");但我认为问题不存在。
  • @randytan 我按照你的帖子回答了,你在帖子里写了 id kode。
【解决方案2】:

将数组列表从 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>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-20
    相关资源
    最近更新 更多