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

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

新規登録して質問してみよう
ただいま回答率
85.48%
JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

servlet

Servletとは、Webページの動的な生成やデータ処理などをサーバ上で実行するために、Javaで作成されたプログラムです。 ショッピングサイトやオンラインバンキングといった、動的なウェブサイトの構築に用いられています。

Q&A

0回答

3016閲覧

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

qwerty123

総合スコア26

JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

servlet

Servletとは、Webページの動的な生成やデータ処理などをサーバ上で実行するために、Javaで作成されたプログラムです。 ショッピングサイトやオンラインバンキングといった、動的なウェブサイトの構築に用いられています。

0グッド

1クリップ

投稿2015/07/20 13:30

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()); }

}

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

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

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問