###前提・実現したいこと
お世話になります。
現在、Struts2の学習を行っています。
struts.xmlに設定を記述せず、Javaファイル内にアノテーションでActionクラスを宣言し、リクエストが行われた際に呼び出したいのですが、JSPファイルのみ表示され、Actionクラスが呼び出されません。
###参考にさせて頂いたサイト
http://www.cyokodog.net/blog/first-struts2/
http://qiita.com/alpha_pz/items/4a97df916102dad2e2bc
###現在使用しているツールやバージョン情報
Java
Eclipse 4.7.0 Oxygen
jdk1.8.0_131
Tomcat 9.0
struts-2.5.12
###ディレクトリ配置、Jarファイル
Jarファイルの一覧です。
###該当のソースコード
web.xml
xml
1<?xml version="1.0" encoding="UTF-8"?> 2<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1"> 3 <display-name>HelloActionClass</display-name> 4 <filter> 5 <filter-name>struts2</filter-name> 6 <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class> 7 <init-param> 8 <param-name>actionPackages</param-name> 9 <param-value>lipton.milktea</param-value> 10 </init-param> 11 </filter> 12 13 <filter-mapping> 14 <filter-name>struts2</filter-name> 15 <url-pattern>/*</url-pattern> 16 </filter-mapping> 17 18 <welcome-file-list> 19 <welcome-file>index.html</welcome-file> 20 </welcome-file-list> 21</web-app>
struts.xml
xml
1<?xml version="1.0" encoding="UTF-8" ?> 2<!DOCTYPE struts PUBLIC 3"-//Apache Software Foundation//DTD Struts Configuration 2.5//EN" 4"http://struts.apache.org/dtds/struts-2.5.dtd"> 5<struts> 6 <constant name="struts.devMode" value="true" /> 7</struts>
AbstractAction.java
java
1package lipton.milktea; 2 3 4import java.util.Map; 5 6import javax.servlet.http.HttpServletResponse; 7 8import org.apache.struts2.interceptor.ServletResponseAware; 9import org.apache.struts2.interceptor.SessionAware; 10 11import com.opensymphony.xwork2.ActionSupport; 12 13public class AbstractAction extends ActionSupport implements ServletResponseAware,SessionAware { 14 15 private static final long serialVersionUID = 1L; 16 17 public HttpServletResponse response; 18 19 public void setServletResponse(HttpServletResponse response) { 20 this.response = response; 21 } 22 23 public Map sessionMap; 24 25 public void setSession( Map sessionMap) { 26 this.sessionMap = sessionMap; 27 } 28}
LoginAction.java
java
1package lipton.milktea; 2 3 4import org.apache.struts2.convention.annotation.Action; 5import org.apache.struts2.convention.annotation.ExceptionMapping; 6import org.apache.struts2.convention.annotation.ExceptionMappings; 7import org.apache.struts2.convention.annotation.Result; 8import org.apache.struts2.convention.annotation.Results; 9 10import com.opensymphony.xwork2.ActionSupport; 11 12@Results({ 13 @Result( name = ActionSupport.SUCCESS , location = "login.jsp" ) 14}) 15@ExceptionMappings({ 16 @ExceptionMapping(exception="java.lang.Exception" , result="exception") 17}) 18@Action("login") 19 20public class LoginAction extends AbstractAction { 21 private static final long serialVersionUID = 1L; 22 23 public String errmsg; 24 public String userId; 25 public String password; 26 27 public String execute() throws Exception { 28 this.sessionMap.put("userId", null); 29 this.userId = "Struts2"; 30 return ActionSupport.SUCCESS; 31 } 32}
###リクエストした後の画面
リクエストをした後の画面表示です。
login.jspが表示されますが、LoginActionクラスが呼び出されず、USER入力欄が空になっています。
独学で学習を進めている為、見苦しい点や理解が及んでいない点、あると思いますが
よろしくお願いします。