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

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

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

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

Q&A

0回答

347閲覧

【JSP】社員一覧表で同一画面で遷移するようにしたい

syu2048

総合スコア22

JSP

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

0グッド

0クリップ

投稿2022/07/13 02:32

編集2022/07/13 05:03

前提

現在、社員の一覧表を作成しています。
内容は以下の通りです。
・社員番号
・氏名
・支社、部署等の所属先
・所持資格
・登録協会
・CPD単位ポイント数

実現したいこと

初期段階の一覧表では全社員が表示されていますが、一覧表の上に、「本社」や「関東支社」など各支社の名称のリンクを作成し、これをクリックすることで、同一のjsp画面で遷移し、選択した支社に所属する社員のみ表示されるようにしたいです。
表示される画面のイメージは以下の通りです。

<初期状態>
●社員一覧表

全社本社北海道東北関東中部関西九州
社員番号氏名本部名支社名部名課名保有資格登録協会CPD備考
11111A本社経営本部人事部-ae50-
22222B本社経営本部情報部-bf50-
33333C関東支社経営本部企画部-cg60-
44444D関西支社経営本部技術部-dh40-

<「本社」をクリックした場合>
●社員一覧表

全社本社北海道東北関東中部関西九州
社員番号氏名本部名支社名部名課名保有資格登録協会CPD備考
11111A本社経営本部人事部-ae50-
22222B本社経営本部情報部-bf50-

発生している問題

前任者が作成したコードでは、同一画面に遷移する方法が上手くできなかったのか、
各支社で個別にjspファイルのリンクを作成することで疑似的に選択した支社の一覧表を表示させていました。
しかしこの場合、どこか1つのjspファイルを修正する際、他の全てのjspファイルも修正しなければならない手間がかかるので、今回はこれを作り直して、同一の画面で表示させるようにしたいと思っています。

該当のソースコード

質問事項と直接関係ない部分もあると思いますが、ご容赦ください。

JSP

1<!-- リース情報・データ表示 --> 2 3<%@ page contentType="text/html; charset=Shift_JIS" %> 4<%@ page import = "java.sql.*" %> 5<%@ page import = "java.util.*" %> 6<%@ page import = "java.io.*" %> 7<%@ page import = "java.text.*" %> 8<%@ include file="../../DB/PostDBConnect_test.jsp" %> 9<%@ include file="../../DB/FCN.jsp" %> 10 11<%! 12 13 //8ケタの年月日を(西暦.月.日)に変換する 14 15 public String Dateconv_wareki9(String s) { 16 17 try { 18 String sYear = Integer.toString(Integer.parseInt(s.substring(0,4))-1988); 19 String sMonth = s.substring(4,6); 20 String sDay = s.substring(6,8); 21 22 String sConvstr = sYear + "."; 23 sConvstr += Integer.toString(Integer.parseInt(sMonth)) + "."; 24 25 if (sDay.equals("00") == false) { 26 if (sDay.equals("33") == true) { 27 sConvstr += "上旬"; 28 } 29 else if (sDay.equals("66") == true) { 30 sConvstr += "中旬"; 31 } 32 else if (sDay.equals("99") == true) { 33 sConvstr += "下旬"; 34 } 35 else { 36 sConvstr += Integer.toString(Integer.parseInt(sDay)); 37 } 38 } 39 40 return sConvstr; 41 } 42 catch (Exception e) { 43 return "-"; 44 } 45 } 46%> 47 48<%! 49 50 //8ケタの年月日を(西暦.月.日)に変換する 51 52 public String Dateconv_warekiHR9(String s) { 53 54 try { 55 String sYear = Integer.toString(Integer.parseInt(s.substring(0,4))-1988); 56 String sMonth = s.substring(4,6); 57 String sDay = s.substring(6,8); 58 59 String sGengo = ""; 60 if (Integer.parseInt(s.substring(0,8)) > 20190430) { 61 sGengo = "R"; 62 sYear = Integer.toString(Integer.parseInt(s.substring(0,4))-2018); 63 } 64 else { 65 sGengo = "H"; 66 } 67 68 String sConvstr = sGengo + sYear + "/"; 69 sConvstr += Integer.toString(Integer.parseInt(sMonth)) + "/"; 70 71 if (sDay.equals("00") == false) { 72 if (sDay.equals("33") == true) { 73 sConvstr += "上旬"; 74 } 75 else if (sDay.equals("66") == true) { 76 sConvstr += "中旬"; 77 } 78 else if (sDay.equals("99") == true) { 79 sConvstr += "下旬"; 80 } 81 else { 82 sConvstr += Integer.toString(Integer.parseInt(sDay)); 83 } 84 } 85 86 return sConvstr; 87 } 88 catch (Exception e) { 89 return "-"; 90 } 91 } 92%> 93 94<html> 95<head> 96<title>単位取得状況</title> 97<style type="text/css"> 98 .Header { font-size:11pt; 99 background-color: CCCCCC; 100 font-family:MSPゴシック; 101 text-align:center; } 102 .Content1 { font-size:10pt; 103 text-align: center; 104 font-family:MSP明朝; } 105 .Content2 { font-size:10pt; 106 text-align: left; 107 font-family:MSP明朝; } 108</style> 109<style type="text/css" media="screen"> 110 div.scroll_div { overflow: auto; } 111</style> 112 113</head> 114<script type="text/javascript" src="../../DB/fixed_midashi.js"></script> 115<script language="JavaScript"> 116<!-- 117 function Manu() { 118 window.open("./manu.pdf","manu","toolbar=0"); 119 } 120//--> 121</script> 122<body onLoad="FixedMidashi.create();"> 123 124<basefont size=3 color="black"> 125 126<% 127 String rHonbuid = request.getParameter("HONBUIDR2"); 128 if (rHonbuid == null) { 129 rHonbuid = "1"; 130 } 131 132 133 //DB接続 134 Connection con = DriverManager.getConnection(url, user, password); 135 Statement stmt = con.createStatement(); 136 ResultSet rs; 137 String sSql = ""; 138 139 //表示項目設定SQL 140 141 sSql = "SELECT "; 142 sSql += "TM.社員番号,"; 143 sSql += "TM.氏名,"; 144 sSql += "TM.所属,"; 145 sSql += "TM.支社,"; 146 sSql += "TM.所属コード,"; 147 sSql += "TM.支社コード,"; 148 sSql += "TM.経歴,"; 149 sSql += "SH.所属,"; 150 sSql += "SH.支社,"; 151 sSql += "SH.支店名,"; 152 sSql += "SH.部名,"; 153 sSql += "SH.課名,"; 154 sSql += "TS.氏名,"; 155 sSql += "TS.資格,"; 156 sSql += "TK.氏名,"; 157 sSql += "TK.協会,"; 158 sSql += "TP.氏名,"; 159 sSql += "TP.CPD,"; 160 sSql += "TB.氏名,"; 161 sSql += "TB.備考"; 162 sSql += " FROM t_社員マスタ AS TM"; 163 sSql += " INNER JOIN t_所属名称 AS SH"; 164 sSql += " ON TM.所属 = SH.所属"; 165 sSql += " INNER JOIN t_CPDポイント AS TP"; 166 sSql += " ON TM.氏名 = TP.氏名"; 167 sSql += " LEFT OUTER JOIN t_資格所持者 AS TS"; 168 sSql += " ON TM.氏名 = TS.氏名"; 169 sSql += " LEFT OUTER JOIN t_協会加入者 AS TK"; 170 sSql += " ON TM.氏名 = TK.氏名"; 171 sSql += " LEFT OUTER JOIN t_備考 AS TB"; 172 sSql += " ON TM.氏名 = TB.氏名"; 173 sSql += " WHERE TM.支社コード = '0'"; 174 sSql += " ORDER BY TM.所属コード ASC, TM.経歴 DESC, TM.社員番号 ASC"; 175 176%> 177 178 <table align="center" cellpadding=3 cellspacing=0 width="1450"> 179 180 <tr><td> 181 <h3>●社員一覧表</h3> 182 </td></tr> 183 184 <tr><td> 185 <table width="1200" cellpadding=2 bgcolor="brown" cellspacing=1 align="left"> 186 <tr> 187 <td width="12%" align="center" bgcolor="red"><font color="white"><b>全社</b></td> 188 <td width="12%" align="center" bgcolor="white"><a href="../display/display_CPD_1.jsp">本社</a></td> 189 <td width="16%" align="center" bgcolor="white"><a href="../display/display_CPD_2.jsp">北海道支社</a></td> 190 <td width="12%" align="center" bgcolor="white"><a href="../display/display_CPD_3.jsp">東北支社</a></td> 191 <td width="12%" align="center" bgcolor="white"><a href="../display/display_CPD_4.jsp">関東支社</a></td> 192 <td width="12%" align="center" bgcolor="white"><a href="../display/display_CPD_5.jsp">中部支社</a></td> 193 <td width="12%" align="center" bgcolor="white"><a href="../display/display_CPD_6.jsp">関西支社</a></td> 194 <td width="12%" align="center" bgcolor="white"><a href="../display/display_CPD_7.jsp">九州支社</a></td> 195 </tr> 196 </table> 197 </td></tr> 198 199 <tr><td> 200 <div class="scroll_div" height=px"800"> 201<!-- <table border cellpadding=2 cellspacing=0 border width=1000> --> 202 <table _fixedhead="rows:2; cols:5;" cellpadding=2 cellspacing=0 border width="1000"> 203 204 <tr> 205 <th width="50" class="Header" nowrap rowspan="2" >社員<br>番号</th> 206 <th width="75" class="Header" nowrap rowspan="2" >氏名</th> 207 <th width="100" class="Header" nowrap rowspan="2" >本部名</th> 208 <th width="100" class="Header" nowrap rowspan="2" >支社名</th> 209 <th width="100" class="Header" nowrap rowspan="2" >部名</th> 210 <th width="125" class="Header" nowrap rowspan="2" >課名</th> 211 <th width="100" class="Header" nowrap rowspan="4" >保有資格</th> 212 <th width="125" class="Header" nowrap rowspan="5" >登録協会</th> 213 <th width="200" class="Header" nowrap rowspan="5" >CPD</th> 214 <th width="150" class="Header" nowrap rowspan="2" >備考</th> 215 </tr> 216 217 <% 218 219 String sSyain = ""; 220 String sName = ""; 221 String sShishamei = ""; 222 String sShitenmei = ""; 223 String sBumei = ""; 224 String sKamei = ""; 225 String sShikakugi = ""; 226 String sKyokaigi = ""; 227 String pTotal = ""; 228 String sBikou = ""; 229 230 rs = stmt.executeQuery(sSql); 231 232 while (rs.next()) { 233 234 sSyain = rs.getString("社員番号"); 235 sName = rs.getString("氏名"); 236 sShishamei = rs.getString("支社"); 237 sShitenmei = rs.getString("支店名"); 238 sBumei = rs.getString("部名"); 239 sKamei = rs.getString("課名"); 240 sShikakugi = rs.getString("資格"); 241 sKyokaigi = rs.getString("協会"); 242 pTotal = rs.getString("CPD"); 243 sBikou = rs.getString("備考"); 244 245 out.println("<tr>"); 246 out.println("<td class=\"Content1\">" + sSyain + "</td>"); 247 out.println("<td class=\"Content1\">" + sName + "</td>"); 248 out.println("<td class=\"Content1\">" + sShishamei + "</td>"); 249 out.println("<td class=\"Content1\">" + sShitenmei + "</td>"); 250 out.println("<td class=\"Content1\">" + sBumei + "</td>"); 251 out.println("<td class=\"Content1\">" + sKamei + "</td>"); 252 out.println("<td class=\"Content1\">" + sShikakugi + "</td>"); 253 out.println("<td class=\"Content1\">" + sKyokaigi + "</td>"); 254 out.println("<td class=\"Content1\">" + pTotal + "</td>"); 255 out.println("<td class=\"Content2\">" + sBikou + "</td>"); 256 out.println("</tr>"); 257 258 } 259 rs.close(); 260 261 out.println("</table></div>"); 262 263 stmt.close(); 264 con.close(); 265 266%> 267</td></tr> 268</table> 269<br> 270</form> 271 272</body> 273</html> 274 275

試したこと

一覧表の上に各支社のリンクを挿入するのが理想ですが、他の社員一覧表のページのjspの文章を参考にして、試しに以下のコードを入力しました。

<br> <table align="center" width="1000" border> <tr height=5></tr> <tr><td> <%= sShishamei %> </td></tr> </table>

コードを挿入した部分は、一覧表の<table>句が終了した後です。

out.println("</table></div>"); stmt.close(); con.close(); %> </td></tr> </table> ←ココ <br> </form> </body> </html>

この場合、「本社」と表示されるのみで、他の支社名は表示されない状態になりました。

条件分岐をうまくできるようにする方法を
ご教授いただけたら幸いです。
どうぞよろしくお願いいたします。

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問