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

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

ただいまの
回答率

87.50%

登録画面で、登録した情報を一覧画面に表示させたい

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 6,999
退会済みユーザー

退会済みユーザー

登録画面(entry.jsp)で、DepartServletからデータを取得し表示させ、
登録画面で、入力した情報を登録ボタンを押して、
一覧画面(employee.jsp)で、登録した情報を表示させたいのですが、

入力して登録ボタンを押しても遷移されず、登録もできません。

よろしくお願いします。

【登録画面(entry.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">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>

<h2>社員登録</h2>

<form action="EntryServlet">

<table border="1">

<tr bgcolor="#afeeee">
<td>社員コード</td>
<td><input type="text" name="entry_id" maxlength='7' style="ime-mode:disabled"></td>
</tr>

<tr bgcolor="#afeeee">
<td>氏名(姓)</td>
<td><input type="text" name="entry_name1" maxlength='20'></td>

<td>氏名(名)</td>
<td><input type="text" name="entry_name2" maxlength='20'></td>
</tr>

<tr bgcolor="#afeeee">
<td>氏名カナ(姓)</td>
<td><input type="text" name="entry_name_kana1" maxlength='100'></td>

<td>氏名カナ(名)</td>
<td><input type="text" name="entry_name_name2" maxlength='100'></td>
</tr>

<tr >
<td bgcolor="#afeeee">性別</td>
<td><input type="radio" name="sex" value="1" id="man" checked><label for="man"></label></td>
<td><input type="radio" name="sex" value="2" id="woman"><label for="woman"></label></td>
<td><input type="radio" name="sex" value="3" id="other"><label for="other">その他</label></td>
</tr>

<tr>
<td bgcolor="#afeeee">役職名</td>
<td><select name="entry_class">
<option value="部長">部長
<option value="課長">課長
<option value="主任">主任
<option value="担当">担当
<option value="アシスタント">アシスタント
</select></td>
</tr>

<tr>
<td bgcolor="#afeeee">所属部署名</td>
<td><select name="entry_depart_name">
<c:forEach var="item" items="${list1}">
<option value="${item.depart_id}">${item.depart_name}
</c:forEach>
</select></td>
</tr>

</table>

<input type="submit" name="registration" value="登録">
<input type="button" name="back" value="戻る" onclick="location.href='KintaikanrisystemServlet'">

</form>
</body>
</html>

【DepartServlet】

import java.io.IOException;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class Depart
 */
public class DepartServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**
     * @see HttpServlet#HttpServlet()
     */
    public DepartServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

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

        String sql="select * from depart";
        //String sql="select depart_id,depart_name from depart";

        Connection con =null;
        Statement stmt=null;

        try{
            con=DBManager.getConnection();
            stmt=con.createStatement();
            ResultSet rs =stmt.executeQuery(sql);

            List<Tableclass> list1=new ArrayList<Tableclass>();

            while(rs.next()){
                Tableclass tableclass=new Tableclass();

                tableclass.setDepart_id(rs.getString("depart_id"));
                tableclass.setDepart_name(rs.getString("depart_name"));


                list1.add(tableclass);
            }

            request.setAttribute("list1",list1);

        }catch(SQLException e){
            throw new ServletException(e);
        }finally{
            if(stmt != null){
                try{stmt.close();}catch(SQLException ignore){}
            }if(stmt != null){
                try{con.close();}catch(SQLException ignore){}
            }
        }
        request.getRequestDispatcher("/entry.jsp").forward(request,response);


        }


    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        doGet(request, response);
    }

}

【EntryServlet】

package kadai;

import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.GregorianCalendar;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class EntryServlet
 */
public class EntryServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**
     * @see HttpServlet#HttpServlet()
     */
    public EntryServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

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

        request.setCharacterEncoding("UTF-8");
        response.setContentType("text/html:charset=UTF-8");


        Connection con =null;
        PreparedStatement stmt=null;

        String message1=null;
        String message2=null;

        int a=0;
        int b=0;

        request.setCharacterEncoding("UTF-8");

        try{

            con=DBManager.getConnection();

            String s_id=request.getParameter("entry_id");
            String l_name=request.getParameter("entry_name1");
            String f_name=request.getParameter("entry_name2");
            String l_name_kana=request.getParameter("entry_name_kana1");
            String f_name_kana=request.getParameter("entry_name_kana2");
            String sex1=request.getParameter("sex");
            int sex=Integer.parseInt(sex1);
            String entry_class=request.getParameter("entry_class");
            String depart_id=request.getParameter("entry_depart_name");
            String boss=null;
            Calendar cd=new GregorianCalendar();
            SimpleDateFormat sd=new SimpleDateFormat("yyyy-MM-dd");
            String sd1=sd.format(cd.getTime());


            int retired=0;

            if(s_id.length()<7){
                message1="社員コードを半角で7桁入力してください。";
                a=1;
                request.setAttribute("message",message1);

            }

            if(l_name==null || f_name==null || l_name_kana==null || f_name_kana==null ||
                    l_name=="" || f_name=="" || l_name_kana=="" || f_name_kana=="")
            {
                message2="氏名・氏名カナを入力してください。";
                b=1;
                request.setAttribute("message2",message2);
            }




            if(a==0 && b==0){
                String sql="insert into employee values(?, ?, ? ,? ,? ,? ,? ,? ,?, ? ,?)";

                stmt=con.prepareStatement(sql);

                stmt.setString(1, s_id);
                stmt.setString(2, l_name);
                stmt.setString(3, f_name);
                stmt.setString(4, l_name_kana);
                stmt.setString(5, f_name_kana);
                stmt.setInt(6, sex);
                stmt.setString(7, entry_class);
                stmt.setString(8, depart_id);
                stmt.setInt(11, retired);

            }

    }catch(SQLException e){
        throw new ServletException(e);
    }finally{
        if(stmt != null){
            try{stmt.close();}catch(SQLException ignore){}
        }if(stmt != null){
            try{con.close();}catch(SQLException ignore){}
        }
    }if(a==0 && b==0){request.getRequestDispatcher("KintaikanrisystemServlet").forward(request,response);}
    else if(a==1 || b==1){request.getRequestDispatcher("/entry.jsp").forward(request,response);}
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        doGet(request, response);
    }

}

【一覧画面(employee.jsp)】

<%@ page contentType="text/html; charset=UTF-8" %>
<%@ page import="java.util.List,kadai.Tableclass" %>


<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>社員一覧</title>
</head>
<body>

<h2>社員一覧</h2>


 <table border="1">
 <!-- border 外枠線の幅 -->

<tr bgcolor="#afeeee">     <!-- th 表の横一行 -->
<th></th>                  <!-- th 見出し -->
<th>社員コード</th>
<th>氏名</th>
<th>氏名カナ</th>
<th>性別</th>
<th>役職名</th>
<th>所属部署名</th>
<th>在職情報</th>

<!-- c:forEach 繰り返し処理 -->
<c:forEach var="item" items="${list}" varStatus="num">
<!-- 「var」 itemから取り出した要素を格納する変数名 -->
<!-- 「items」 ループする配列(list) -->
<!-- 「varStatus」 現在のループの状態を表すステータス変数 -->

<tr>
<td><input type="radio" name="radio" value="${num.index}"></td>


<td>${item.s_id}</td>
<td>${item.name }</td>
<td>${item.name_kana }</td>
<td>${item.sex }</td>
<td>${item.clas }</td>
<td>${item.depart_name }</td>
<td>${item.retired }</td>

</tr>
</c:forEach>
</table>

<!-- ボタン生成 -->
<input type="submit" value="削除" onclick="delete_test();">
<input type="button" value="登録" onclick="location.href='DepartServlet'">
<input type="submit" value="更新" >
<input type="button" value="戻る" onclick="location.href='kintaikanrisystem.jsp'">




</body>
</html>
  • 気になる質問をクリップする

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

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

    クリップを取り消します

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

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

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

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

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

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

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

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

    質問の評価を下げる

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

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

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

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

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

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

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

    詳細な説明はこちら

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

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

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

質問への追記・修正、ベストアンサー選択の依頼

  • 退会済みユーザー

    退会済みユーザー

    2017/07/26 15:51

    本文で文字数オーバーになったため、回答にweb.xmlを記述しました。よろしくお願いします。

    キャンセル

  • A-pZ

    2017/07/26 20:31

    「遷移もしません」とのことですが、現象を確認するための情報が欲しいです。submitボタンが押されたときに、EntryServletサーブレットは動作しているのでしょうか?EclipseなどのIDEをお使いであればデバッグモードで動かして、ブレークポイントを設定すると動作しているかを確認できるでしょう。また、web.xmlを拝見しましたが、おそらく動作はするのですが非推奨の記述をしています。<servlet>と<servlet-mapping>は交互に書くのではなく、<servet>でひとかたまり、<servlet-mapping>でひとかたまりで記述します。

    キャンセル

  • 退会済みユーザー

    退会済みユーザー

    2017/07/27 09:09

    A-pZさん EntryServletは動作しているのかデバックモードで確認してみます。またweb.xmlの記述をまとめます。ご教示ありがとうございます。

    キャンセル

回答 1

check解決した方法

0

本文が文字数制限を超えてしまったため、
こちらにweb.xmlを記述します。
よろしくお願いします。

【web.xml】

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:jsp="http://java.sun.com/xml/ns/javaee/jsp" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <jsp-config>
    <jsp-property-group>
      <url-pattern>*.jsp</url-pattern>
      <page-encoding>UTF-8</page-encoding>
      <include-prelude>/header.jsp</include-prelude>
      <include-coda>/footer.jsp</include-coda>
    </jsp-property-group>
  </jsp-config>
   <servlet>
    <servlet-name>KintaikanrisystemServlet</servlet-name>
    <servlet-class>kadai.KintaikanrisystemServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>KintaikanrisystemServlet</servlet-name>
    <url-pattern>/KintaikanrisystemServlet</url-pattern>
  </servlet-mapping>
    <servlet>
    <servlet-name>DeleteServlet</servlet-name>
    <servlet-class>kadai.DeleteServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>DeleteServlet</servlet-name>
    <url-pattern>/DeleteServlet</url-pattern>
  </servlet-mapping>
 <servlet>
    <servlet-name>EntryServlet</servlet-name>
    <servlet-class>kadai.EntryServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>EntryServlet</servlet-name>
    <url-pattern>/EntryServlet</url-pattern>
  </servlet-mapping>
  <servlet>
    <servlet-name>DepartServlet</servlet-name>
    <servlet-class>kadai.DepartServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>DepartServlet</servlet-name>
    <url-pattern>/DepartServlet</url-pattern>
  </servlet-mapping>
</web-app>

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

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

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

関連した質問

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