〇やりたいこと
勤怠アプリを作っています。
そのなかで、画面上のリンクをクリックすると社員情報の一覧がテーブルで表示される機能をjavascriptを使ってつくりたいと考えています。
現状はJavaを使い、画面遷移をすることによって上記の機能を実装しています。
(リンクをクリック→ActionクラスでDBから社員情報をSELECT→SELECTしたデータをListに格納→遷移先のjsp画面でListの値をテーブルに表示。という流れです)
この流れを、
(リンクをクリック→onClickなどでイベント実行→DB接続に関わるJavaクラスを実行→データをListに格納→データをテーブルで表示(※このテーブルをリンクがあるjspと同一画面の下部に表示するようにしたい))
という風にしたいです。
(まずこの考え方はあっているのでしょうか?)
〇調べていること
『javascript Java 実行』などのキーワードで調べており、現在javaアプレットを使用すれば可能なのでは?と至り調べている最中です。
しかしイマイチ要領を得ないので、アドバイスを頂きたいです。
jsp
1<%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8"%> 3<%@ taglib uri = "http://struts.apache.org/tags-html" prefix = "html" %> 4 5<!DOCTYPE html> 6<html:html> 7 <head> 8 <meta charset="UTF-8"> 9 <title>Insert title here</title> 10 <link rel = "stylesheet" href = "http://localhost:8081/Attendance_Apli/CSS/AttendanceCSS.css"> 11 </head> 12 <body id = "top_body"> 13 <div id = "top_mainDiv"> 14 <% String msg = (String)request.getAttribute("msg"); 15 if(msg != null){ 16 %> 17 <p><% out.println(msg); %></p><br> 18 <% } %> 19 <h1 >勤怠管理</h1> 20 <br> 21 <html:form action = "/attendance"> 22 <div id = "top_submit"> 23 <button type = "submit" name = "attendance" value = "I" id = "top_attend" >出勤</button> 24 <button type = "submit" name = "attendance" value = "O" id = "top_attend">退勤</button> 25 </div> 26 </html:form> 27 28 <br> 29 <html:link action = "/userlist" >ユーザー一覧</html:link> //★ここのリンクからjavascriptを実行したい 30 <br> 31 <a href = "http://localhost:8081/Attendance_Apli/JSP/list/MonthAttendance.jsp" id = "top_a">勤怠一覧(月次)</a> 32 <br> 33 <br> 34 <div id = "top_submit"> 35 <html:form action = "/logout"> 36 <html:submit property = "logout" value = "ログアウト"/> 37 </html:form> 38 </div> 39 </div> 40 </body> 41</html:html>
java
1package list; 2 3import java.sql.Connection; 4import java.sql.ResultSet; 5import java.sql.Statement; 6import java.util.ArrayList; 7import java.util.List; 8 9import javax.servlet.http.HttpServletRequest; 10import javax.servlet.http.HttpServletResponse; 11import javax.servlet.http.HttpSession; 12 13import org.apache.struts.action.Action; 14import org.apache.struts.action.ActionForm; 15import org.apache.struts.action.ActionForward; 16import org.apache.struts.action.ActionMapping; 17 18import database.DBManager; 19import model.LoopListForm; 20import model.UserActionForm; 21 22/** 23 * 24 * @author cellua 25 * 26 * DBのM_USERからデータを取り出して、 27 * ユーザー一覧画面に表示させる 28 */ 29public class UserListAction extends Action { 30 public ActionForward execute 31 (ActionMapping mapping , 32 ActionForm form , 33 HttpServletRequest request , 34 HttpServletResponse response) 35throws Exception{ 36 Connection conn = DBManager.getConnection(); //DB接続 37 38 39 //sessionからIDを受け取って、権限をselectしにいく 40 HttpSession session = request.getSession(false); 41 String userID = (String)session.getAttribute("userID"); 42 String preSql = "SELECT AUTH FROM M_USER WHERE USER_ID = '" + userID + "'"; 43 Statement preSmt = conn.createStatement(); 44 ResultSet preRs = preSmt.executeQuery(preSql); 45 preRs.next(); 46 String auth = preRs.getString("AUTH"); 47 48 //ログインユーザーの権限に応じて表示できるか、できないかを分岐させる 49 if(!auth.equals("0")) { 50 request.setAttribute("msg" , "ユーザー一覧の閲覧権限がありません"); 51 return (mapping.findForward("toTop")); 52 } 53 54 //DBから使用ユーザーのデータをselect 55 String sql = "SELECT * FROM M_USER "; 56 57 Statement smt = conn.createStatement(); 58 ResultSet rs = smt.executeQuery(sql); 59 60 61 //データ格納用のlistとloop作成 62 List<UserActionForm> list = new ArrayList<UserActionForm>(); 63 LoopListForm loop = new LoopListForm(); 64 65 while(rs.next()) { 66 67 //ActionFormインスタンス作成 68 UserActionForm uaf = new UserActionForm(); 69 70 //TOP画面に載せる情報を抜き出す 71 uaf.setUserID(rs.getString("USER_ID")); 72 uaf.setName(rs.getString("NAME")); 73 uaf.setAuth(rs.getString("AUTH")); 74 uaf.setSex(rs.getString("SEX")); 75 uaf.setMail(rs.getString("MAIL_ADDRESS")); 76 uaf.setCreateDate(rs.getDate("CREATE_DATE")); 77 uaf.setDate(rs.getDate("UPDATE_DATE")); 78 79 list.add(uaf); 80 } 81 loop.setLoop(list); 82 83 request.setAttribute("list" , list); 84 request.setAttribute("loopData" , loop); 85 86 87 if(list.size() > 0) { 88 //一覧画面へ画面遷移 89 DBManager.closeDataBase(smt, conn); 90 return (mapping.findForward("toUserList")); 91 }else { 92 //エラー画面へ遷移 93 DBManager.closeDataBase(smt, conn); 94 return (mapping.findForward("error")); 95 } 96 97 } 98 99}
回答1件
あなたの回答
tips
プレビュー