[STYLE] controllerの無駄な改行やスペースなどの削除

This commit is contained in:
s-choi
2026-09-10 15:49:34 +09:00
parent d2c78b12aa
commit 2e748dc1cb
8 changed files with 411 additions and 617 deletions

View File

@@ -1,5 +1,19 @@
package com.example.rhizome.app.presentation.controller; package com.example.rhizome.app.presentation.controller;
import static com.example.rhizome.app.presentation.controller.pageproperty.TransitionTargetPageNameKeyword.*;
import java.util.Objects;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.http.HttpSession;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import com.example.rhizome.aop.aspect.PermissionCheck; import com.example.rhizome.aop.aspect.PermissionCheck;
import com.example.rhizome.aop.aspect.SessionCheck; import com.example.rhizome.aop.aspect.SessionCheck;
@@ -12,30 +26,12 @@ import com.example.rhizome.app.presentation.controller.pageproperty.TransitionTa
import com.example.rhizome.app.presentation.form.DepartmentForm; import com.example.rhizome.app.presentation.form.DepartmentForm;
import com.example.rhizome.app.presentation.form.LoginUserForm; import com.example.rhizome.app.presentation.form.LoginUserForm;
import com.example.rhizome.app.presentation.form.MessageForm; import com.example.rhizome.app.presentation.form.MessageForm;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import javax.servlet.http.HttpSession;
import java.util.Objects;
import java.util.logging.Level;
import java.util.logging.Logger;
import static com.example.rhizome.app.presentation.controller.pageproperty.TransitionTargetPageNameKeyword.DELETE_EMPLOYEE;
/**
* 削除処理のコントロータ
*/
@Controller @Controller
public class DeleteEmployeeController { public class DeleteEmployeeController {
// ログ出力用インスタンス
private final static Logger LOGGER = Logger.getLogger(DeleteEmployeeController.class.getName()); private final static Logger LOGGER = Logger.getLogger(DeleteEmployeeController.class.getName());
// エラーメッセージ用の定数フィールド
private final static String SEVERE_ERROR_MESSAGE = "エラーが発生しました!"; private final static String SEVERE_ERROR_MESSAGE = "エラーが発生しました!";
HttpSession httpSession; HttpSession httpSession;
@@ -43,78 +39,52 @@ public class DeleteEmployeeController {
SearchDepartment searchDepartment; SearchDepartment searchDepartment;
@Autowired @Autowired
public DeleteEmployeeController(DeleteEmployee deleteEmployee, SearchDepartment searchDepartment, HttpSession httpSession) { public DeleteEmployeeController(DeleteEmployee deleteEmployee, SearchDepartment searchDepartment,
HttpSession httpSession) {
this.httpSession = httpSession; this.httpSession = httpSession;
this.deleteEmployee = deleteEmployee; this.deleteEmployee = deleteEmployee;
this.searchDepartment = searchDepartment; this.searchDepartment = searchDepartment;
} }
/**
* 削除処理のコントローラ
*
* @param idEmployee 削除対象のemployeeId
* @param model ビューにデータを渡すためのコンテナ
* @return 遷移先の画面
*/
@PermissionCheck @PermissionCheck
@SessionCheck @SessionCheck
@RequestMapping(value = DELETE_EMPLOYEE, method = RequestMethod.POST) @RequestMapping(value = DELETE_EMPLOYEE, method = RequestMethod.POST)
public String deleteEmployee(@RequestParam("idEmployee") Integer idEmployee, Model model) { public String deleteEmployee(@RequestParam("idEmployee") Integer idEmployee, Model model) {
try { try {
// 部署一覧を取得し、画面に返す用のクラスに詰め替える
// 作成した部署一覧をセット
model.addAttribute( model.addAttribute(
PageReturnAttributeKeyword.DEPARTMENT_FORM_LIST, PageReturnAttributeKeyword.DEPARTMENT_FORM_LIST,
DepartmentForm.convertFrom(searchDepartment.selectAll()) DepartmentForm.convertFrom(searchDepartment.selectAll()));
);
// 削除処理実施
deleteExec( deleteExec(
model, model,
idEmployee, idEmployee,
LoginUserForm.convertTo((LoginUserForm) httpSession.getAttribute(SessionKeyword.LOGIN_USER))); LoginUserForm.convertTo((LoginUserForm) httpSession.getAttribute(SessionKeyword.LOGIN_USER)));
// 検索画面に遷移
return "forward:" + TransitionTargetPageNameKeyword.SELECT_EMPLOYEE_INFO_FORM_EMPTY; return "forward:" + TransitionTargetPageNameKeyword.SELECT_EMPLOYEE_INFO_FORM_EMPTY;
} catch (Exception e) { } catch (Exception e) {
// ログイン情報の破棄
httpSession.invalidate(); httpSession.invalidate();
e.printStackTrace(); e.printStackTrace();
// エラーログ出力
LOGGER.log(Level.SEVERE, SEVERE_ERROR_MESSAGE, e); LOGGER.log(Level.SEVERE, SEVERE_ERROR_MESSAGE, e);
// エラー画面遷移
return TransitionTargetPageNameKeyword.ERROR_HTML; return TransitionTargetPageNameKeyword.ERROR_HTML;
} }
} }
/**
* 削除処理実施
*
* @param model ビューにデータを渡すためのコンテナ
* @param idEmployee 削除対象のemployeeId
* @param loginUser ログインユーザー情報
*/
private void deleteExec(Model model, Integer idEmployee, LoginUser loginUser) { private void deleteExec(Model model, Integer idEmployee, LoginUser loginUser) {
final String DELETE_TARGET_ID_CAN_NOT_DELETE = "ログイン者自身は削除出来ません。"; final String DELETE_TARGET_ID_CAN_NOT_DELETE = "ログイン者自身は削除出来ません。";
final String DELETE_COMPLETE = "削除しました。"; final String DELETE_COMPLETE = "削除しました。";
// ログインしている人が、削除対象かチェック
if (Objects.equals(loginUser.getIdEmployee(), idEmployee)) { if (Objects.equals(loginUser.getIdEmployee(), idEmployee)) {
// 削除対象だった場合 model.addAttribute(PageReturnAttributeKeyword.MESSAGE_ERROR,
// エラーメッセージをセット new MessageForm(DELETE_TARGET_ID_CAN_NOT_DELETE));
model.addAttribute(PageReturnAttributeKeyword.MESSAGE_ERROR, new MessageForm(DELETE_TARGET_ID_CAN_NOT_DELETE));
// 検索画面に遷移
return; return;
} }
// 削除を実施
deleteEmployee.deleteEmployee(idEmployee); deleteEmployee.deleteEmployee(idEmployee);
// 削除完了したメッセージをセット
model.addAttribute(PageReturnAttributeKeyword.MESSAGE_INFO, new MessageForm(DELETE_COMPLETE)); model.addAttribute(PageReturnAttributeKeyword.MESSAGE_INFO, new MessageForm(DELETE_COMPLETE));
} }

View File

@@ -1,17 +1,18 @@
package com.example.rhizome.app.presentation.controller; package com.example.rhizome.app.presentation.controller;
import com.example.rhizome.app.domain.service.impl.LoginImpl; import static com.example.rhizome.app.presentation.controller.pageproperty.TransitionTargetPageNameKeyword.*;
import com.example.rhizome.app.presentation.controller.pageproperty.PageReturnAttributeKeyword;
import com.example.rhizome.app.presentation.form.LoginUserForm; import javax.servlet.http.HttpSession;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.ui.Model; import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import javax.servlet.http.HttpSession; import com.example.rhizome.app.domain.service.impl.LoginImpl;
import com.example.rhizome.app.presentation.controller.pageproperty.PageReturnAttributeKeyword;
import static com.example.rhizome.app.presentation.controller.pageproperty.TransitionTargetPageNameKeyword.*; import com.example.rhizome.app.presentation.form.LoginUserForm;
@Controller @Controller
public class IndexController { public class IndexController {
@@ -28,23 +29,14 @@ public class IndexController {
return new LoginUserForm(); return new LoginUserForm();
} }
/**
* ログイン画面表示処理
*
* @param model ビューにデータを渡すためのコンテナ
* @return 遷移先の画面
*/
@RequestMapping(value = { INDEX_BLANK, INDEX_SLASH, INDEX_LOGIN }) @RequestMapping(value = { INDEX_BLANK, INDEX_SLASH, INDEX_LOGIN })
public String index(Model model) { public String index(Model model) {
// セッション情報を破棄
if (httpSession != null) { if (httpSession != null) {
httpSession.invalidate(); httpSession.invalidate();
} }
// 空のFormをSessionに用意
model.addAttribute(PageReturnAttributeKeyword.LOGIN_INFO_FORM, loginUserForm()); model.addAttribute(PageReturnAttributeKeyword.LOGIN_INFO_FORM, loginUserForm());
// ログイン画面に遷移
return LOGIN_HTML; return LOGIN_HTML;
} }
} }

View File

@@ -1,5 +1,20 @@
package com.example.rhizome.app.presentation.controller; package com.example.rhizome.app.presentation.controller;
import static com.example.rhizome.app.presentation.controller.pageproperty.TransitionTargetPageNameKeyword.*;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.http.HttpSession;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import com.example.rhizome.aop.aspect.PermissionCheck; import com.example.rhizome.aop.aspect.PermissionCheck;
import com.example.rhizome.aop.aspect.SessionCheck; import com.example.rhizome.aop.aspect.SessionCheck;
import com.example.rhizome.app.domain.model.Employee; import com.example.rhizome.app.domain.model.Employee;
@@ -12,30 +27,12 @@ import com.example.rhizome.app.presentation.controller.pageproperty.TransitionTa
import com.example.rhizome.app.presentation.form.DepartmentForm; import com.example.rhizome.app.presentation.form.DepartmentForm;
import com.example.rhizome.app.presentation.form.InsertEmployeeForm; import com.example.rhizome.app.presentation.form.InsertEmployeeForm;
import com.example.rhizome.app.presentation.form.MessageForm; import com.example.rhizome.app.presentation.form.MessageForm;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import javax.servlet.http.HttpSession;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import static com.example.rhizome.app.presentation.controller.pageproperty.TransitionTargetPageNameKeyword.INSERT_EMPLOYEE_CONFIRM;
/**
* 新規登録者情報チェック用のコントローラ
*/
@Controller @Controller
public class InsertEmployeeConfirmController { public class InsertEmployeeConfirmController {
// ログ出力用インスタンス
private final static Logger LOGGER = Logger.getLogger(InsertEmployeeConfirmController.class.getName()); private final static Logger LOGGER = Logger.getLogger(InsertEmployeeConfirmController.class.getName());
// エラーメッセージ用の定数フィールド
private final static String SEVERE_ERROR_MESSAGE = "エラーが発生しました!"; private final static String SEVERE_ERROR_MESSAGE = "エラーが発生しました!";
HttpSession httpSession; HttpSession httpSession;
@@ -46,8 +43,7 @@ public class InsertEmployeeConfirmController {
public InsertEmployeeConfirmController( public InsertEmployeeConfirmController(
HttpSession httpSession, HttpSession httpSession,
SearchDepartmentImpl searchDepartment, SearchDepartmentImpl searchDepartment,
SearchEmployeeImpl searchEmployee SearchEmployeeImpl searchEmployee) {
) {
this.httpSession = httpSession; this.httpSession = httpSession;
this.searchDepartment = searchDepartment; this.searchDepartment = searchDepartment;
this.searchEmployee = searchEmployee; this.searchEmployee = searchEmployee;
@@ -58,76 +54,46 @@ public class InsertEmployeeConfirmController {
return new InsertEmployeeForm(); return new InsertEmployeeForm();
} }
/**
* 登録情報のチェックを行う
*
* @param insertEmployeeForm 登録情報
* @param model ビューにデータを渡すためのコンテナ
* @return 遷移先の画面
*/
@PermissionCheck @PermissionCheck
@SessionCheck @SessionCheck
@RequestMapping(value = INSERT_EMPLOYEE_CONFIRM, method = RequestMethod.POST) @RequestMapping(value = INSERT_EMPLOYEE_CONFIRM, method = RequestMethod.POST)
public String insertEmployeeConfirm(InsertEmployeeForm insertEmployeeForm, Model model) { public String insertEmployeeConfirm(InsertEmployeeForm insertEmployeeForm, Model model) {
try { try {
// 部署一覧を取得し、画面に返す用のクラスに詰め替える
// 作成した部署一覧をセット
model.addAttribute( model.addAttribute(
PageReturnAttributeKeyword.DEPARTMENT_FORM_LIST, PageReturnAttributeKeyword.DEPARTMENT_FORM_LIST,
DepartmentForm.convertFrom( DepartmentForm.convertFrom(
searchDepartment.selectAll() searchDepartment.selectAll()));
));
// 登録用パラメータチェック
List<String> error = insertEmployeeForm.validateParameter(); List<String> error = insertEmployeeForm.validateParameter();
// 入力内容に誤りがあるか
if (!error.isEmpty()) { if (!error.isEmpty()) {
// 誤りがあった場合 model.addAttribute(PageReturnAttributeKeyword.MESSAGE_ERROR,
// 誤りがあった箇所のエラーメッセージを表示 new MessageForm(String.join(", ", error) + "が不正です。"));
model.addAttribute(PageReturnAttributeKeyword.MESSAGE_ERROR, new MessageForm(String.join(", ", error) + "が不正です。"));
// 画面に返す為の登録情報をセット
model.addAttribute(PageReturnAttributeKeyword.INSERT_EMPLOYEE_FORM, insertEmployeeForm); model.addAttribute(PageReturnAttributeKeyword.INSERT_EMPLOYEE_FORM, insertEmployeeForm);
// 登録画面に遷移
return TransitionTargetPageNameKeyword.INSERT_EMPLOYEE_INPUT_HTML; return TransitionTargetPageNameKeyword.INSERT_EMPLOYEE_INPUT_HTML;
} }
final String DUPLICATION = "既に登録済みのメールアドレスです。"; final String DUPLICATION = "既に登録済みのメールアドレスです。";
// 登録対象のメールアドレスを元に検索
List<Employee> employeeList = searchEmployee.searchEmployee(insertEmployeeForm.getMailAddress()); List<Employee> employeeList = searchEmployee.searchEmployee(insertEmployeeForm.getMailAddress());
// 検索結果があるか
if (!employeeList.isEmpty()) { if (!employeeList.isEmpty()) {
// 検索した結果0件ではない場合
// 重複を許さないため、エラー処理
model.addAttribute(PageReturnAttributeKeyword.MESSAGE_ERROR, new MessageForm(DUPLICATION)); model.addAttribute(PageReturnAttributeKeyword.MESSAGE_ERROR, new MessageForm(DUPLICATION));
// 画面に返す為の登録情報をセット
model.addAttribute(PageReturnAttributeKeyword.INSERT_EMPLOYEE_FORM, insertEmployeeForm); model.addAttribute(PageReturnAttributeKeyword.INSERT_EMPLOYEE_FORM, insertEmployeeForm);
// 登録画面に遷移
return TransitionTargetPageNameKeyword.INSERT_EMPLOYEE_INPUT_HTML; return TransitionTargetPageNameKeyword.INSERT_EMPLOYEE_INPUT_HTML;
} }
// 登録確認ページに遷移
model.addAttribute(PageReturnAttributeKeyword.INSERT_EMPLOYEE_FORM, insertEmployeeForm); model.addAttribute(PageReturnAttributeKeyword.INSERT_EMPLOYEE_FORM, insertEmployeeForm);
// 登録確認画面に遷移
return TransitionTargetPageNameKeyword.INSERT_EMPLOYEE_CONFIRM_HTML; return TransitionTargetPageNameKeyword.INSERT_EMPLOYEE_CONFIRM_HTML;
} catch (Exception e) { } catch (Exception e) {
// ログイン情報の破棄
httpSession.invalidate(); httpSession.invalidate();
e.printStackTrace(); e.printStackTrace();
// エラーログ出力
LOGGER.log(Level.SEVERE, SEVERE_ERROR_MESSAGE, e); LOGGER.log(Level.SEVERE, SEVERE_ERROR_MESSAGE, e);
// エラー画面遷移
return TransitionTargetPageNameKeyword.ERROR_HTML; return TransitionTargetPageNameKeyword.ERROR_HTML;
} }
} }
} }

View File

@@ -1,5 +1,21 @@
package com.example.rhizome.app.presentation.controller; package com.example.rhizome.app.presentation.controller;
import static com.example.rhizome.app.presentation.controller.pageproperty.TransitionTargetPageNameKeyword.*;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.http.HttpSession;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import com.example.rhizome.aop.aspect.PermissionCheck; import com.example.rhizome.aop.aspect.PermissionCheck;
import com.example.rhizome.aop.aspect.SessionCheck; import com.example.rhizome.aop.aspect.SessionCheck;
import com.example.rhizome.app.domain.service.RegisterEmployee; import com.example.rhizome.app.domain.service.RegisterEmployee;
@@ -11,31 +27,12 @@ import com.example.rhizome.app.presentation.controller.pageproperty.TransitionTa
import com.example.rhizome.app.presentation.form.DepartmentForm; import com.example.rhizome.app.presentation.form.DepartmentForm;
import com.example.rhizome.app.presentation.form.InsertEmployeeForm; import com.example.rhizome.app.presentation.form.InsertEmployeeForm;
import com.example.rhizome.app.presentation.form.MessageForm; import com.example.rhizome.app.presentation.form.MessageForm;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import javax.servlet.http.HttpSession;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import static com.example.rhizome.app.presentation.controller.pageproperty.TransitionTargetPageNameKeyword.INSERT_EMPLOYEE;
/**
* 新規登録用のコントローラ
*/
@Controller @Controller
public class InsertEmployeeController { public class InsertEmployeeController {
// ログ出力用インスタンス
private final static Logger LOGGER = Logger.getLogger(InsertEmployeeController.class.getName()); private final static Logger LOGGER = Logger.getLogger(InsertEmployeeController.class.getName());
// エラーメッセージ用の定数フィールド
private final static String SEVERE_ERROR_MESSAGE = "エラーが発生しました!"; private final static String SEVERE_ERROR_MESSAGE = "エラーが発生しました!";
HttpSession httpSession; HttpSession httpSession;
@@ -43,7 +40,8 @@ public class InsertEmployeeController {
SearchDepartment searchDepartment; SearchDepartment searchDepartment;
@Autowired @Autowired
public InsertEmployeeController(HttpSession httpSession, RegisterEmployeeImpl registerEmployee, SearchDepartmentImpl searchDepartment) { public InsertEmployeeController(HttpSession httpSession, RegisterEmployeeImpl registerEmployee,
SearchDepartmentImpl searchDepartment) {
this.httpSession = httpSession; this.httpSession = httpSession;
this.registerEmployee = registerEmployee; this.registerEmployee = registerEmployee;
this.searchDepartment = searchDepartment; this.searchDepartment = searchDepartment;
@@ -54,80 +52,51 @@ public class InsertEmployeeController {
return new InsertEmployeeForm(); return new InsertEmployeeForm();
} }
/**
* 新規登録画面表示処理
*
* @param insertEmployeeForm 登録情報
* @param model ビューにデータを渡すためのコンテナ
* @return 遷移先の画面
*/
@PermissionCheck @PermissionCheck
@SessionCheck @SessionCheck
@RequestMapping(value = INSERT_EMPLOYEE, method = RequestMethod.POST) @RequestMapping(value = INSERT_EMPLOYEE, method = RequestMethod.POST)
public String insertEmployee(InsertEmployeeForm insertEmployeeForm, Model model) { public String insertEmployee(InsertEmployeeForm insertEmployeeForm, Model model) {
try { try {
// 部署一覧を取得し、画面に返す用のクラスに詰め替える
// 作成した部署一覧をセット
model.addAttribute( model.addAttribute(
PageReturnAttributeKeyword.DEPARTMENT_FORM_LIST, PageReturnAttributeKeyword.DEPARTMENT_FORM_LIST,
DepartmentForm.convertFrom( DepartmentForm.convertFrom(
searchDepartment.selectAll() searchDepartment.selectAll()));
));
// Confirm画面から渡ってきた値をチェック
List<String> error = validateParameter( List<String> error = validateParameter(
insertEmployeeForm.getNmEmployee(), insertEmployeeForm.getNmEmployee(),
insertEmployeeForm.getKnEmployee(), insertEmployeeForm.getKnEmployee(),
insertEmployeeForm.getMailAddress(), insertEmployeeForm.getMailAddress(),
insertEmployeeForm.getPassword(), insertEmployeeForm.getPassword(),
insertEmployeeForm.getAdminAuth(), insertEmployeeForm.getAdminAuth(),
insertEmployeeForm.getIdDepartment() insertEmployeeForm.getIdDepartment());
);
// エラーが1件以上有る場合
if (!error.isEmpty()) { if (!error.isEmpty()) {
// エラー内容を画面に表示 model.addAttribute(PageReturnAttributeKeyword.MESSAGE_ERROR,
model.addAttribute(PageReturnAttributeKeyword.MESSAGE_ERROR, new MessageForm(String.join(", ", error) + "が不正です。")); new MessageForm(String.join(", ", error) + "が不正です。"));
// 登録画面に遷移
return TransitionTargetPageNameKeyword.INSERT_EMPLOYEE_INPUT_HTML; return TransitionTargetPageNameKeyword.INSERT_EMPLOYEE_INPUT_HTML;
} }
// 登録処理
registerEmployee.registerEmployee(InsertEmployeeForm.convertTo(insertEmployeeForm)); registerEmployee.registerEmployee(InsertEmployeeForm.convertTo(insertEmployeeForm));
// 登録結果画面に遷移
return TransitionTargetPageNameKeyword.INSERT_EMPLOYEE_RESULT_HTML; return TransitionTargetPageNameKeyword.INSERT_EMPLOYEE_RESULT_HTML;
} catch (Exception e) { } catch (Exception e) {
// ログイン情報の破棄
httpSession.invalidate(); httpSession.invalidate();
e.printStackTrace(); e.printStackTrace();
// エラーログ出力
LOGGER.log(Level.SEVERE, SEVERE_ERROR_MESSAGE, e); LOGGER.log(Level.SEVERE, SEVERE_ERROR_MESSAGE, e);
// エラー画面遷移
return TransitionTargetPageNameKeyword.ERROR_HTML; return TransitionTargetPageNameKeyword.ERROR_HTML;
} }
} }
/**
* @param employeeName 登録対象の名前
* @param employeeKana 登録対象のカナ
* @param mailAddress 登録対象のメールアドレス
* @param password 登録対象のパスワード
* @param management システム権限
* @param departmentId 部署ID
* @return エラーが有った場合はエラー文言、無ければ空のリストが返る
*/
private List<String> validateParameter( private List<String> validateParameter(
String employeeName, String employeeName,
String employeeKana, String employeeKana,
String mailAddress, String mailAddress,
String password, String password,
Integer management, Integer management,
Integer departmentId Integer departmentId) {
) {
final String EMPLOYEE_NAME_NULL_BLANK = "社員名"; final String EMPLOYEE_NAME_NULL_BLANK = "社員名";
final String EMPLOYEE_KANA_NULL_BLANK = "社員名フリガナ"; final String EMPLOYEE_KANA_NULL_BLANK = "社員名フリガナ";
@@ -138,39 +107,27 @@ public class InsertEmployeeController {
List<String> error = new ArrayList<>(); List<String> error = new ArrayList<>();
// null or 空文字判定
if (isNullOrBlank(employeeName)) { if (isNullOrBlank(employeeName)) {
// エラー内容を追加
error.add(EMPLOYEE_NAME_NULL_BLANK); error.add(EMPLOYEE_NAME_NULL_BLANK);
} }
// null or 空文字判定
if (isNullOrBlank(employeeKana)) { if (isNullOrBlank(employeeKana)) {
// エラー内容を追加
error.add(EMPLOYEE_KANA_NULL_BLANK); error.add(EMPLOYEE_KANA_NULL_BLANK);
} }
// null or 空文字判定
if (isNullOrBlank(mailAddress)) { if (isNullOrBlank(mailAddress)) {
// エラー内容を追加
error.add(MAIL_ADDRESS_NULL_BLANK); error.add(MAIL_ADDRESS_NULL_BLANK);
} }
// null or 空文字判定
if (isNullOrBlank(password)) { if (isNullOrBlank(password)) {
// エラー内容を追加
error.add(PASSWORD_NULL_BLANK); error.add(PASSWORD_NULL_BLANK);
} }
// 管理者権限の値が不正か
if (management == null) { if (management == null) {
// エラー内容を追加
error.add(MANAGEMENT_ERROR); error.add(MANAGEMENT_ERROR);
} }
// 所属部署の値が不正か
if (departmentId == null) { if (departmentId == null) {
// エラー内容を追加
error.add(DEPARTMENT_ID_NULL_BLANK); error.add(DEPARTMENT_ID_NULL_BLANK);
} }
@@ -178,12 +135,6 @@ public class InsertEmployeeController {
} }
/**
* 仮引数を null or 空 判定する
*
* @param str 判定対象の文字列
* @return true:null or 空 false:null or 空 では無い
*/
private static boolean isNullOrBlank(String str) { private static boolean isNullOrBlank(String str) {
if (null == str) { if (null == str) {
return true; return true;
@@ -193,6 +144,3 @@ public class InsertEmployeeController {
} }
} }

View File

@@ -1,5 +1,19 @@
package com.example.rhizome.app.presentation.controller; package com.example.rhizome.app.presentation.controller;
import static com.example.rhizome.app.presentation.controller.pageproperty.TransitionTargetPageNameKeyword.*;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.http.HttpSession;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import com.example.rhizome.aop.aspect.PermissionCheck; import com.example.rhizome.aop.aspect.PermissionCheck;
import com.example.rhizome.aop.aspect.SessionCheck; import com.example.rhizome.aop.aspect.SessionCheck;
import com.example.rhizome.app.domain.service.RegisterEmployee; import com.example.rhizome.app.domain.service.RegisterEmployee;
@@ -8,29 +22,12 @@ import com.example.rhizome.app.presentation.controller.pageproperty.PageReturnAt
import com.example.rhizome.app.presentation.controller.pageproperty.TransitionTargetPageNameKeyword; import com.example.rhizome.app.presentation.controller.pageproperty.TransitionTargetPageNameKeyword;
import com.example.rhizome.app.presentation.form.DepartmentForm; import com.example.rhizome.app.presentation.form.DepartmentForm;
import com.example.rhizome.app.presentation.form.InsertEmployeeForm; import com.example.rhizome.app.presentation.form.InsertEmployeeForm;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import javax.servlet.http.HttpSession;
import java.util.logging.Level;
import java.util.logging.Logger;
import static com.example.rhizome.app.presentation.controller.pageproperty.TransitionTargetPageNameKeyword.INSERT_EMPLOYEE_INPUT;
/**
* 登録画面表示用コントローラ
*/
@Controller @Controller
public class InsertEmployeeInputController { public class InsertEmployeeInputController {
// ログ出力用インスタンス
private final static Logger LOGGER = Logger.getLogger(InsertEmployeeInputController.class.getName()); private final static Logger LOGGER = Logger.getLogger(InsertEmployeeInputController.class.getName());
// エラーメッセージ用の定数フィールド
private final static String SEVERE_ERROR_MESSAGE = "エラーが発生しました!"; private final static String SEVERE_ERROR_MESSAGE = "エラーが発生しました!";
HttpSession httpSession; HttpSession httpSession;
@@ -38,7 +35,8 @@ public class InsertEmployeeInputController {
SearchDepartment searchDepartment; SearchDepartment searchDepartment;
@Autowired @Autowired
public InsertEmployeeInputController(HttpSession httpSession, RegisterEmployee registerEmployee, SearchDepartment searchDepartment) { public InsertEmployeeInputController(HttpSession httpSession, RegisterEmployee registerEmployee,
SearchDepartment searchDepartment) {
this.httpSession = httpSession; this.httpSession = httpSession;
this.registerEmployee = registerEmployee; this.registerEmployee = registerEmployee;
this.searchDepartment = searchDepartment; this.searchDepartment = searchDepartment;
@@ -49,42 +47,26 @@ public class InsertEmployeeInputController {
return new InsertEmployeeForm(); return new InsertEmployeeForm();
} }
/**
* 登録画面表示処理
*
* @param insertEmployeeForm 登録画面のフォーム
* @param model ビューにデータを渡すためのコンテナ
* @return 遷移先の画面
*/
@SessionCheck @SessionCheck
@PermissionCheck @PermissionCheck
@RequestMapping(value = INSERT_EMPLOYEE_INPUT, method = RequestMethod.POST) @RequestMapping(value = INSERT_EMPLOYEE_INPUT, method = RequestMethod.POST)
public String insertInput(InsertEmployeeForm insertEmployeeForm, Model model) { public String insertInput(InsertEmployeeForm insertEmployeeForm, Model model) {
try { try {
// 部署コードリストを作成し、画面に返す値としてセット model.addAttribute(PageReturnAttributeKeyword.DEPARTMENT_FORM_LIST,
model.addAttribute(PageReturnAttributeKeyword.DEPARTMENT_FORM_LIST, DepartmentForm.convertFrom(searchDepartment.selectAll())); DepartmentForm.convertFrom(searchDepartment.selectAll()));
// パラメータをセット
model.addAttribute(PageReturnAttributeKeyword.INSERT_EMPLOYEE_FORM, insertEmployeeForm); model.addAttribute(PageReturnAttributeKeyword.INSERT_EMPLOYEE_FORM, insertEmployeeForm);
// 登録画面に遷移
return TransitionTargetPageNameKeyword.INSERT_EMPLOYEE_INPUT_HTML; return TransitionTargetPageNameKeyword.INSERT_EMPLOYEE_INPUT_HTML;
} catch (Exception e) { } catch (Exception e) {
// ログイン情報の破棄
httpSession.invalidate(); httpSession.invalidate();
e.printStackTrace(); e.printStackTrace();
// エラーログ出力
LOGGER.log(Level.SEVERE, SEVERE_ERROR_MESSAGE, e); LOGGER.log(Level.SEVERE, SEVERE_ERROR_MESSAGE, e);
// エラー画面遷移
return TransitionTargetPageNameKeyword.ERROR_HTML; return TransitionTargetPageNameKeyword.ERROR_HTML;
} }
} }
} }

View File

@@ -1,5 +1,18 @@
package com.example.rhizome.app.presentation.controller; package com.example.rhizome.app.presentation.controller;
import static com.example.rhizome.app.presentation.controller.pageproperty.TransitionTargetPageNameKeyword.*;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.http.HttpSession;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import com.example.rhizome.app.domain.model.LoginInfo; import com.example.rhizome.app.domain.model.LoginInfo;
import com.example.rhizome.app.domain.model.LoginUser; import com.example.rhizome.app.domain.model.LoginUser;
@@ -11,29 +24,12 @@ import com.example.rhizome.app.presentation.form.LoginInfoForm;
import com.example.rhizome.app.presentation.form.LoginUserForm; import com.example.rhizome.app.presentation.form.LoginUserForm;
import com.example.rhizome.app.presentation.form.MessageForm; import com.example.rhizome.app.presentation.form.MessageForm;
import com.example.rhizome.app.presentation.form.UpdatePersonalUserForm; import com.example.rhizome.app.presentation.form.UpdatePersonalUserForm;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import javax.servlet.http.HttpSession;
import java.util.logging.Level;
import java.util.logging.Logger;
import static com.example.rhizome.app.presentation.controller.pageproperty.TransitionTargetPageNameKeyword.DO_LOGIN;
/**
* ログイン関連のコントローラ
*/
@Controller @Controller
public class LoginController { public class LoginController {
// ログ出力用インスタンス
private final static Logger LOGGER = Logger.getLogger(LoginController.class.getName()); private final static Logger LOGGER = Logger.getLogger(LoginController.class.getName());
// エラーメッセージ用の定数フィールド
private final static String SEVERE_ERROR_MESSAGE = "エラーが発生しました!"; private final static String SEVERE_ERROR_MESSAGE = "エラーが発生しました!";
HttpSession httpSession; HttpSession httpSession;
@@ -50,99 +46,59 @@ public class LoginController {
return new LoginUserForm(); return new LoginUserForm();
} }
/**
* 画面から渡ってきたパラメータのチェックを行う
*
* @param loginInfoForm mailAddress, password を保持したインスタンス
* @param model ビューにデータを渡すためのコンテナ
* @return 遷移先の画面
*/
@RequestMapping(value = DO_LOGIN, method = RequestMethod.POST) @RequestMapping(value = DO_LOGIN, method = RequestMethod.POST)
public String doLogin(LoginInfoForm loginInfoForm, Model model) { public String doLogin(LoginInfoForm loginInfoForm, Model model) {
// ログに出力する
final String MAIL_ADDRESS_PASSWORD_ERROR = "メールアドレス、パスワードの入力内容に誤りがあります"; final String MAIL_ADDRESS_PASSWORD_ERROR = "メールアドレス、パスワードの入力内容に誤りがあります";
// 発生しうるErrorに対するメッセージ
final String LOGIN_ERROR = "IDまたはパスワードが間違っています"; final String LOGIN_ERROR = "IDまたはパスワードが間違っています";
try { try {
// mailAddress, password の入力に誤りがあるかチェック
if (!LoginUserForm.checkParameter(loginInfoForm)) { if (!LoginUserForm.checkParameter(loginInfoForm)) {
// mail,passwordが仕様を満たしていない場合 model.addAttribute(PageReturnAttributeKeyword.MESSAGE_ERROR,
model.addAttribute(PageReturnAttributeKeyword.MESSAGE_ERROR, new MessageForm(MAIL_ADDRESS_PASSWORD_ERROR)); new MessageForm(MAIL_ADDRESS_PASSWORD_ERROR));
// エラーだった場合に login.html に処理を戻す。mailAddress, password を login.htmlに表示するために
// ここで addAttribute する
model.addAttribute(PageReturnAttributeKeyword.LOGIN_INFO_FORM, loginInfoForm); model.addAttribute(PageReturnAttributeKeyword.LOGIN_INFO_FORM, loginInfoForm);
// login.html に遷移する様に設定
return TransitionTargetPageNameKeyword.LOGIN_HTML; return TransitionTargetPageNameKeyword.LOGIN_HTML;
} }
// Login者情報インスタンスを作成
LoginInfo loginInfo = createLoginInfo(httpSession, loginInfoForm); LoginInfo loginInfo = createLoginInfo(httpSession, loginInfoForm);
// login 可能かチェック
if (!login.canLogin(loginInfo)) { if (!login.canLogin(loginInfo)) {
// ログイン不可の場合、エラーメッセージをセットして入力された値とともに login.html を再表示
// 画面に表示するエラーメッセージをセット
model.addAttribute(PageReturnAttributeKeyword.MESSAGE_ERROR, new MessageForm(LOGIN_ERROR)); model.addAttribute(PageReturnAttributeKeyword.MESSAGE_ERROR, new MessageForm(LOGIN_ERROR));
// 画面に表示する mailAddress, password をセット
model.addAttribute(PageReturnAttributeKeyword.LOGIN_INFO_FORM, loginInfoForm); model.addAttribute(PageReturnAttributeKeyword.LOGIN_INFO_FORM, loginInfoForm);
// login.html に遷移
return TransitionTargetPageNameKeyword.LOGIN_HTML; return TransitionTargetPageNameKeyword.LOGIN_HTML;
} }
// ログイン(インスタンス作成)
LoginUser loginUser = login.doLogin(loginInfo); LoginUser loginUser = login.doLogin(loginInfo);
// ログイン者の情報をセッション情報に格納
// セッションに loginUser 情報を保持し続ける = ログイン中として扱う
httpSession.setAttribute(SessionKeyword.LOGIN_USER, LoginUserForm.convertFrom(loginUser)); httpSession.setAttribute(SessionKeyword.LOGIN_USER, LoginUserForm.convertFrom(loginUser));
// 管理者かチェック
if (!loginUser.isAdminUser()) { if (!loginUser.isAdminUser()) {
// 管理者ではない場合直で自分の情報を更新するページに遷移する model.addAttribute(PageReturnAttributeKeyword.UPDATE_PERSONAL_EMPLOYEE_USER_FORM,
// 編集対象のログイン者の情報を画面に渡す値にセット UpdatePersonalUserForm.convertFrom(loginUser));
model.addAttribute(PageReturnAttributeKeyword.UPDATE_PERSONAL_EMPLOYEE_USER_FORM, UpdatePersonalUserForm.convertFrom(loginUser));
// 個人の情報更新ページに遷移
return TransitionTargetPageNameKeyword.UPDATE_PERSONAL_EMPLOYEE_INPUT_HTML; return TransitionTargetPageNameKeyword.UPDATE_PERSONAL_EMPLOYEE_INPUT_HTML;
} }
// メニュー画面に遷移
return TransitionTargetPageNameKeyword.MENU_HTML; return TransitionTargetPageNameKeyword.MENU_HTML;
} catch (Exception e) { } catch (Exception e) {
// ログイン情報の破棄
httpSession.invalidate(); httpSession.invalidate();
e.printStackTrace(); e.printStackTrace();
// エラーログ出力
LOGGER.log(Level.SEVERE, SEVERE_ERROR_MESSAGE, e); LOGGER.log(Level.SEVERE, SEVERE_ERROR_MESSAGE, e);
// エラー画面に遷移
return TransitionTargetPageNameKeyword.ERROR_HTML; return TransitionTargetPageNameKeyword.ERROR_HTML;
} }
} }
/**
* ログイン者情報のインスタンスを作成
*
* @param httpSession セッション情報
* @param loginInfoForm mailAddress, password を保持したインスタンス
*/
private static LoginInfo createLoginInfo(HttpSession httpSession, LoginInfoForm loginInfoForm) { private static LoginInfo createLoginInfo(HttpSession httpSession, LoginInfoForm loginInfoForm) {
// セッションからログイン者情報を取得
LoginUserForm loginUserForm = (LoginUserForm) httpSession.getAttribute(SessionKeyword.LOGIN_USER); LoginUserForm loginUserForm = (LoginUserForm) httpSession.getAttribute(SessionKeyword.LOGIN_USER);
// セッションにログイン者情報があるか
if (loginUserForm != null) { if (loginUserForm != null) {
// セッションにログイン者情報がある場合
return new LoginInfo(loginUserForm.getMailAddress(), loginUserForm.getPassword()); return new LoginInfo(loginUserForm.getMailAddress(), loginUserForm.getPassword());
} }
// セッションにない場合は画面からの input 値 を取得
return new LoginInfo( return new LoginInfo(
loginInfoForm.getMailAddress(), loginInfoForm.getMailAddress(),
loginInfoForm.getPassword() loginInfoForm.getPassword());
);
} }
} }

View File

@@ -1,10 +1,12 @@
package com.example.rhizome.app.presentation.controller; package com.example.rhizome.app.presentation.controller;
import com.example.rhizome.aop.aspect.PermissionCheck; import static com.example.rhizome.app.presentation.controller.pageproperty.TransitionTargetPageNameKeyword.*;
import com.example.rhizome.aop.aspect.SessionCheck;
import com.example.rhizome.app.presentation.controller.pageproperty.PageReturnAttributeKeyword; import java.util.logging.Level;
import com.example.rhizome.app.presentation.controller.pageproperty.TransitionTargetPageNameKeyword; import java.util.logging.Logger;
import com.example.rhizome.app.presentation.form.LoginUserForm;
import javax.servlet.http.HttpSession;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.ui.Model; import org.springframework.ui.Model;
@@ -12,21 +14,16 @@ import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestMethod;
import javax.servlet.http.HttpSession; import com.example.rhizome.aop.aspect.PermissionCheck;
import java.util.logging.Level; import com.example.rhizome.aop.aspect.SessionCheck;
import java.util.logging.Logger; import com.example.rhizome.app.presentation.controller.pageproperty.PageReturnAttributeKeyword;
import com.example.rhizome.app.presentation.controller.pageproperty.TransitionTargetPageNameKeyword;
import com.example.rhizome.app.presentation.form.LoginUserForm;
import static com.example.rhizome.app.presentation.controller.pageproperty.TransitionTargetPageNameKeyword.LOGOUT;
/**
* ログアウト処理のコントローラ
*/
@Controller @Controller
public class LogoutController { public class LogoutController {
// ログ出力用インスタンス
private final static Logger LOGGER = Logger.getLogger(LogoutController.class.getName()); private final static Logger LOGGER = Logger.getLogger(LogoutController.class.getName());
// エラーメッセージ用の定数フィールド
private final static String SEVERE_ERROR_MESSAGE = "エラーが発生しました!"; private final static String SEVERE_ERROR_MESSAGE = "エラーが発生しました!";
HttpSession httpSession; HttpSession httpSession;
@@ -41,30 +38,19 @@ public class LogoutController {
return new LoginUserForm(); return new LoginUserForm();
} }
/**
* ログアウト処理
*
* @param model ビューにデータを渡すためのコンテナ
* @return 遷移先の画面
*/
@PermissionCheck @PermissionCheck
@SessionCheck @SessionCheck
@RequestMapping(value = LOGOUT, method = RequestMethod.POST) @RequestMapping(value = LOGOUT, method = RequestMethod.POST)
public String doLogout(Model model) { public String doLogout(Model model) {
try { try {
// セッション情報の破棄
httpSession.invalidate(); httpSession.invalidate();
// ログイン画面に遷移するための情報を設定
model.addAttribute(PageReturnAttributeKeyword.LOGIN_INFO_FORM, loginUserForm()); model.addAttribute(PageReturnAttributeKeyword.LOGIN_INFO_FORM, loginUserForm());
// login.html に遷移
return TransitionTargetPageNameKeyword.LOGIN_HTML; return TransitionTargetPageNameKeyword.LOGIN_HTML;
} catch (Exception e) { } catch (Exception e) {
// エラーログ出力
LOGGER.log(Level.SEVERE, SEVERE_ERROR_MESSAGE, e); LOGGER.log(Level.SEVERE, SEVERE_ERROR_MESSAGE, e);
// エラーページに遷移
return TransitionTargetPageNameKeyword.ERROR_HTML; return TransitionTargetPageNameKeyword.ERROR_HTML;
} }

View File

@@ -1,16 +1,14 @@
package com.example.rhizome.app.presentation.controller; package com.example.rhizome.app.presentation.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import com.example.rhizome.aop.aspect.PermissionCheck; import com.example.rhizome.aop.aspect.PermissionCheck;
import com.example.rhizome.aop.aspect.SessionCheck; import com.example.rhizome.aop.aspect.SessionCheck;
import com.example.rhizome.app.presentation.controller.pageproperty.TransitionTargetPageNameKeyword; import com.example.rhizome.app.presentation.controller.pageproperty.TransitionTargetPageNameKeyword;
import com.example.rhizome.app.presentation.form.MessageForm; import com.example.rhizome.app.presentation.form.MessageForm;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
/**
* メニュー画面表示用コントローラ
*/
@Controller @Controller
public class MenuController { public class MenuController {
@@ -19,14 +17,10 @@ public class MenuController {
return new MessageForm(); return new MessageForm();
} }
/**
* メニュー画面に遷移
*/
@PermissionCheck @PermissionCheck
@SessionCheck @SessionCheck
@RequestMapping(value = TransitionTargetPageNameKeyword.SHOW_MENU) @RequestMapping(value = TransitionTargetPageNameKeyword.SHOW_MENU)
public String showMenu() { public String showMenu() {
// メニュー画面遷移
return TransitionTargetPageNameKeyword.MENU_HTML; return TransitionTargetPageNameKeyword.MENU_HTML;
} }