Servlet日記(2001/01/29)

本日の成果

 前回、Servlet日記(2001/01/21) JSP再びで作成したものでは、JSP内にゴリゴリとプログラムを書いていましたが、何か違うような気がするので別に分離してみました。前回のデータを保持するBeanはそのままにして、HTMLを出力するものを別に作成しています。JSPはこんな感じで、プロパティの設定だけになりました。

<%@ page contentType="text/html; charset=Shift_JIS" %>
<HTML>
<HEAD>
<jsp:useBean id="bean0" scope="session" class="jspsample1.Cart" />
<jsp:useBean id="htmlBean" class="jspsample1.HtmlTable" />
<TITLE>
Jsp1
</TITLE>
</HEAD>
<BODY>
<H1>
JBuilder で生成された JSP
</H1>
<FORM method="post">
<BR>
<INPUT TYPE="SUBMIT" NAME="Submit" VALUE="Submit">
<INPUT TYPE="RESET" VALUE="Reset">
<HR>
Cartに入れるもの :  <INPUT NAME="item"><BR>
<% String s = request.getParameter("item"); %>
<jsp:setProperty name="bean0" property="item" value="<%= s %>" />
<jsp:setProperty name="htmlBean" property="tableHeader" value="Cartの内容" />
<jsp:setProperty name="htmlBean" property="tableBody" value="<%= bean0.getItemList() %>" />
<jsp:getProperty name="htmlBean" property="tableHTML" />
</FORM>
<HR>
</BODY>
</HTML>

 で、一方のHTMLを出力する方はこんな感じ。ですが、ヘボヘボ です。

package jspsample1;

import java.io.*;
import java.util.*;

public class HtmlTable{
  private String tableHeader = null;
  private Collection tableBody = null;

  public HtmlTable() {
    super();
  }
  public void setTableHeader(String newTableHeader) {
    tableHeader = newTableHeader;
  }
  public void setTableBody(java.util.Collection newTableBody) {
    tableBody = newTableBody;
  }
  public String getTableHTML() {
    StringBuffer buf = new StringBuffer();
    String s = null;

    buf.append("<TABLE>");
    buf.append("<TR>");
    buf.append("<TH>");
    buf.append(tableHeader);
    buf.append("</TH>");
    buf.append("</TR>");

    for (Iterator it = tableBody.iterator(); it.hasNext();) {
      s = (String)it.next();
      if (null != s) {
        buf.append("<TR>");
        buf.append("<TD>");
        buf.append(s);
        buf.append("</TD>");
        buf.append("</TR>");
      }
    }

    buf.append("</TABLE>");
    return buf.toString();
  }
}

 どうしようもないレベルですが、一応動くからいいや。

本日の教訓

 とりあえず、こんなヘボプログラムでも、なんとなくの雰囲気は分かりました。が、しかし・・・

Servlet日記の目次 ホーム