SpringMVCの画面遷移について
(java)
Eclipse4.6上でSpringSTSを利用してJava Webソフトを開発しています。
最初のログイン画面から次のメニューに遷移する際にjspは実行してくれるのですが
これに対応したControllerクラスのGETメソットを実行してくれません。
タイトル用の画像をはめ込むだけですが
なぜControllクラスに遷移しないのか不明です。
関連のソースを以下に示します。
<ログインコントロール>
package jp.vikingegg.VESales.control;
import java.util.Locale;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
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 jp.vikingegg.VESales.common.EnvironmentInfo;
import jp.vikingegg.VESales.service.LoginService;
@Controller
@RequestMapping(value = "/")
public class LoginController {
private static final Logger logger = LoggerFactory.getLogger (LoginController.class);
@Autowired
private LoginService loginService;
public LoginController(){
loginService = new LoginService();
}
@RequestMapping(value = "/", method = RequestMethod.GET)
public String getLogin(Locale locale, Model model) {
logger.info("VikingEgg(LoginGET) The client locale is {}.", locale);
// 実行ユーザー情報クリア
loginService.userInfoClear();
// システム情報設定
EnvironmentInfo environmentInfo = new EnvironmentInfo();
model.addAttribute("systemImage",environmentInfo.getSystemImage());
model.addAttribute("systemName",environmentInfo.getSystemName());
String wView = "Login";
return wView;
}
@RequestMapping(value = "/", method = RequestMethod.POST)
public String postLogin(@RequestParam("userid") String pUserId,
@RequestParam("password") String password,
Locale locale,
Model model) {
try{
logger.info("Login VikingEgg(LoginPOST) The client locale is {}.", locale);
String userId = pUserId;
String pass = password;
String retForm = "";
// 入力エラーメッセージクリア
model.addAttribute("errorMessage","");
retForm = "/";
loginService.GetUserInfo(userId, pass);
String ErrMsg = loginService.UserIDCheck();
if (ErrMsg == ""){
// メニュー
retForm = loginService.getMenu();
}else{
// 入力エラー
model.addAttribute("errorMessage",ErrMsg);
logger.info("nextMenu : " + retForm);
retForm = "/";
}
//retForm = "forward:" + "AMenuController";
logger.info("Login VikingEgg(NextMenu) = " + retForm, locale);
return retForm;
}catch(Exception e){
logger.info("Login(POST) "+ e.toString() , locale);
return "";
}
}
}
<ログインから遷移するメニューのコントロールクラス>
package jp.vikingegg.VESales.control;
import java.io.IOException;
import java.util.Locale;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
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.servlet.ModelAndView;
import jp.vikingegg.VESales.common.EnvironmentInfo;
import jp.vikingegg.VESales.common.GlobalConst;
import jp.vikingegg.VESales.service.AMenuservice;
@Controller
public class AMenuController {
private static final Logger logger = LoggerFactory.getLogger(AMenuController.class);
@Autowired
private AMenuservice amenuService;
@RequestMapping(value = "/AMenu", method = RequestMethod.GET)
public String getAMenu(Locale locale, Model model) throws IOException{
logger.info("AMenu(GET) The client locale is {}.", locale);
try{
logger.info("AMenu(GET) AMenuGET", locale);
// システム情報設定
EnvironmentInfo environmentInfo = new EnvironmentInfo();
model.addAttribute("systemImage",environmentInfo.getSystemImage());
model.addAttribute("systemName",environmentInfo.getSystemName());
String wView = GlobalConst.cnsMenuAdmin;
return wView;
}catch(Exception e){
logger.info("AMenu(GET) Error {"+ e.toString() + "}", locale);
String wView = GlobalConst.cnsLogin;
return wView;
}
}
@RequestMapping(value = "/AMenu", method = RequestMethod.POST )
public ModelAndView postAMenu(Locale locale, Model model){
ModelAndView wView = new ModelAndView(GlobalConst.cnsMenuAdmin);
return wView;
}
}
<メニューのJSP>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ page session="false" language="java" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>${systemName}(管理者メニュー)</title>
<!-- Bootstrap CSS -->
<link href="<c:url value="/resources/css/comm/bootstrap/bootstrap.min.css" />" rel="stylesheet" media="screen">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- 全画面共通スタイル -->
<link href="<c:url value="/resources/css/comm/projectcomm/common.css" />" rel="stylesheet" media="screen">
<!-- ADMINメニュー画面のスタイル -->
<link href="<c:url value="/resources/css/AMenu.css" />" type="text/css" rel="stylesheet" media="screen">
<!-- JQuery -->
<script type="text/javascript" src="<c:url value="/resources/js/comm/jquery/jquery.min.js" />" ></script>
<!-- Bootstrap -->
<script type="text/javascript" src="<c:url value="/resources/js/comm/bootstrap/bootstrap.min.js" />" ></script>
</head>
<body>
<div class="row">
<div class="col-sm-2 col-md-2 col-lg-2">
<img class="profile-img" src="<c:url value="${systemImage}"/>" alt="">
</div>
<div class="col-sm-10 col-md-10 col-lg-10">
<font>${systemName1}</font>
</div>
</div>
<form id="AMenu" name="FormAMenu" method="post">
<div class="center-block">
<div class="row">
<div class="col-sm-12 col-md-12 col-lg-12">
<ul id="dropmenu">
<li><a href="">ログアウト</a>
</li>
<li><a href="#">システム管理</a>
<ul>
<li><a href="SystemEnv">システム環境</a></li>
<li><a href="#">バッチスケジューラー</a></li>
<li><a href="#">採番管理</a></li>
<li><a href="#">エラーメッセージ管理</a></li>
<li><a href="#">バックアップ</a></li>
</ul>
</li>
<li><a href="#">ユーザー管理</a>
<ul>
<li><a href="#">会社登録</a></li>
<li><a href="#">組織登録</a></li>
<li><a href="#">社員ユーザ登録</a></li>
</ul>
</li>
<li><a href="#">統計処理</a>
<ul>
<li><a href="#">アクセス解析</a></li>
</ul>
</li>
<li><a href="#">バックアップ</a>
<ul>
<li><a href="#">データバックアップ</a></li>
<li><a href="#">環境保存</a></li>
</ul>
</li>
</ul>
</div>
</div>
</div>
<div class="center-block">
<div class="row">
</div>
</div>
</form>
</body>
</html>