質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.34%

JSP・Servletの受け渡しについて

受付中

回答 0

投稿

  • 評価
  • クリップ 1
  • VIEW 2,037

qwerty123

score 28

JSP、Servletをつかって社員の登録ページを作成しました。
JSP画面にある左側の表に情報を入力すると、右の登録票に情報が追加されるというものです。Javabeansから初期情報を得る仕様にしました。

しかし、私が作成したプログラムでは初期情報の登録はできるものの、新規(register)、更新(renew)、削除(delete)ができません。どのように修正すればよいでしょうか?

・左の入力エリアにデータを入力し、新規を押すとデータが右の一覧に登録される。
・右の表のラジオボタンをクリックすると、その行のデータが入力エリアに反映
され、値を変更して更新ボタンを押すとそれが適用される。
・右の表のラジオボタンを選択して削除ボタンを押すと、一覧に表示されなくなる。

-----JSP-----

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<%@ page import="java.util.*" %>


<%@ page import="entry.EmployeeBean" %>

<html>
<title>EMP表</title>

<% ArrayList<EmployeeBean> empTable = (ArrayList<EmployeeBean>)
request.getAttribute("employeeTable"); %>

<%
request.setCharacterEncoding("utf-8");
%>

<body>
<H1>EMP表</H1>

<table>
<tr>
<td>

<td style="vertical-align:top" >
<form method="post" action="Emp3.jsp">
<table border="1" width="250px">

  <tr>
    <td align="left" bgcolor="orange"><b>employeeNO</b></td>
    <td><input type="text" name="syainNo" size="4"></td>
  </tr>

  <tr>
    <td align="left" bgcolor="orange"><b>employeeName</b></td>
    <td><input type="text" name="syainName" size="14"></td>
  </tr>

  <tr>
    <td align="left" bgcolor="orange"><b>category</b></td>
    <td><input type="text" name="jobClass" size="14"></td>
  </tr>

  <tr>
    <td align="left" bgcolor="orange"><b>manager</b></td>
    <td><input type="text" name="manager" size="4"></td>
  </tr>

  <tr>
    <td align="left" bgcolor="orange"><b>date</b></td>
    <td><input type="text" name="start" size="12"></td>
  </tr>

  <tr>
    <td align="left" bgcolor="orange"><b>salary</b></td>
    <td><input type="text" name="salary" size="12"></td>
  </tr>

  <tr>
    <td align="left" bgcolor="orange"><b>rate</b></td>
    <td><input type="text" name="rate" size="8"></td>
  </tr>

  <tr>
    <td align="left" bgcolor="orange"><b>classNO</b></td>
    <td><input type="text" name="busyoNo" size="2"></td>
  </tr>

</table>

<br>

<input type="submit" value="register" style="width:80px;height:30px">
<input type="submit" value="renew" style="width:80px;height:30px">
<input type="reset" value="delete" style="width:80px;height:30px">

</form>

<td></td>
<td></td>
<td></td>
<td></td>
<td></td>

<td style="vertical-align:top" >
<table border="1" height="5px">
<tr bgcolor="orange">
<th>&nbsp;</th>
<th>employeeNO</th>
<th>employeeName</th>
<th>category</th>
<th>manager</th>
<th>date</th>
<th>salary</th>
<th>rate</th>
<th>classNO</th>
</tr>

<%
        for (int i = 0; i < empTable.size(); i++) {
            EmployeeBean employeeBean = empTable.get(i);
            String syainNo = employeeBean.getEmployeeNo();
            String syainName = employeeBean.getEmployeeName();
            String jobClass = employeeBean.getJob();
            String manager = employeeBean.getManager();
            String start = employeeBean.getHireDate();
            double salary = employeeBean.getSalary();
            double rate = employeeBean.getCommission();
            int busyoNo = employeeBean.getDepartmentNo();
%>

<tr>
<th><input type="radio"></th>
<td><%= syainNo %></td>
<td><%= syainName %></td>
<td><%= jobClass %></td>
<td><%= manager %></td>
<td><%= start %></td>
<td><%= salary %></td>
<td><%= rate %></td>
<td><%= busyoNo %></td>
</tr>

<%
}
%>

</table>

</td>
</tr>
</table>

</body>
</html>

-----Servlet-----

package entry;

import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class Emp3
 */
@WebServlet("/Emp3")
public class Emp3 extends HttpServlet {
    private static final long serialVersionUID = 1L;
    private ArrayList<EmployeeBean> employeeTable;

    /**
    * @see HttpServlet#HttpServlet()
    */
    public Emp3() {
        super();
    }
    /**
    * @see javax.servlet.GenericServlet#init()
    */
    public void init() throws ServletException{
        // 表の作成
        createEmployeeTable();
    }

    /**
    * @see HttpServlet#doGet(HttpServletRequest request,
HttpServletResponse
    *      response)
    */
    protected void doGet(HttpServletRequest request,
            HttpServletResponse response) throws ServletException,
IOException {

        request.setAttribute("employeeTable", employeeTable);
        ServletContext context = this.getServletContext();
        RequestDispatcher dispatcher =
context.getRequestDispatcher("/Emp3.jsp");
        dispatcher.forward(request, response);

    }

    /**
    * @see HttpServlet#doPost(HttpServletRequest request,
HttpServletResponse
    *      response)
    */
    protected void doPost(HttpServletRequest request,
            HttpServletResponse response) throws ServletException,
IOException {

        request.setAttribute("employeeTable", employeeTable);
        ServletContext context = this.getServletContext();
        RequestDispatcher dispatcher =
context.getRequestDispatcher("/Emp3.jsp");
        dispatcher.forward(request, response);

    }

    protected void createEmployeeTable() {

        employeeTable = new ArrayList<EmployeeBean>();

        // employee1
        EmployeeBean employee1 = new EmployeeBean();
        employee1.setEmployeeNo("7369");
        employee1.setEmployeeName("SMITH");
        employee1.setJob("CLERK");
        employee1.setManager("7902");
        employee1.setHireDate("1980/12/17");
        employee1.setSalary(400);
        employee1.setCommission(0);
        employee1.setDepartmentNo(10);

        employeeTable.add(employee1);

        // employee2
        EmployeeBean employee2 = new EmployeeBean();
        employee2.setEmployeeNo("7499");
        employee2.setEmployeeName("HELEN");
        employee2.setJob("SALESMAN");
        employee2.setManager("7839");
        employee2.setHireDate("1981/02/22");
        employee2.setSalary(400);
        employee2.setCommission(300);
        employee2.setDepartmentNo(30);

        employeeTable.add(employee2);

        // employee3
        EmployeeBean employee3 = new EmployeeBean();
        employee3.setEmployeeNo("7521");
        employee3.setEmployeeName("WORD");
        employee3.setJob("SALESMAN");
        employee3.setManager("7698");
        employee3.setHireDate("1981/02/22");
        employee3.setSalary(125);
        employee3.setCommission(500);
        employee3.setDepartmentNo(30);

        employeeTable.add(employee3);

    }
}

-----javabeans-----

package entry;

public class EmployeeBean implements Comparable<EmployeeBean>{

    private String employeeNo;
    private String employeeName;
    private String job;
    private String manager;
    private String hireDate;
    private double salary;
    private double commission;
    private int departmentNo;

    public String getEmployeeNo() {
        return this.employeeNo;
    }

    public void setEmployeeNo(String employeeNo) {
        this.employeeNo = employeeNo;
    }

    public String getEmployeeName() {
        return this.employeeName;
    }

    public void setEmployeeName(String employeeName) {
        this.employeeName = employeeName;
    }

    public String getJob() {
        return this.job;
    }

    public void setJob(String job) {
        this.job = job;
    }

    public String getManager() {
        return this.manager;
    }

    public void setManager(String manager) {
        this.manager = manager;
    }

    public String getHireDate() {
        return this.hireDate;
    }

    public void setHireDate(String hireDate) {
        this.hireDate = hireDate;
    }

    public double getSalary() {
        return this.salary;
    }

    public void setSalary(double salary) {
        this.salary = salary;
    }

    public double getCommission() {
        return this.commission;
    }

    public void setCommission(double commission) {
        this.commission = commission;
    }

    public int getDepartmentNo() {
        return this.departmentNo;
    }

    public void setDepartmentNo(int departmentNo) {
        this.departmentNo = departmentNo;
    }

    public int compareTo(EmployeeBean employee) {
        return this.employeeNo.compareTo(employee.getEmployeeNo());
    }
}

・左の入力エリアにデータを入力し、新規を押すとデータが右の一覧に登録される。
・右の表のラジオボタンをクリックすると、その行のデータが入力エリアに反映
され、値を変更して更新ボタンを押すとそれが適用される。
・右の表のラジオボタンを選択して削除ボタンを押すと、一覧に表示されなくなる。

よろしくお願いいたします。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

まだ回答がついていません

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.34%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る