最終更新日:2017‐02-13
基礎
Struts
 http://www.jajakarta.org/
ポイント
ActionFormとActionクラスが存在することに注意する。
ActionFormは画面からのインプットタグ
[html]<input type="text" />[/html]からの値を保持するクラスで
パラメータに対するValidateなどは、ActionFormクラスの中でValidateメソッドを用意する
 それに対しActionクラスは、業務固有ロジックを呼び出し実行する位置づけとなっている。
 業務固有ロジック呼出しを行った後、ActionFowardクラスを返却し、画面遷移させる。
 画面遷移先はstruts-config.xmlによって記述されている。
サンプルソース
loginForm.jsp
<%@ page contentType="text/html; charset=Windows-31J" %> <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %> <%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %> <%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %> <table border="0"> <tbody> <tr> <td> <pre>ID:</pre> </td> <td></td> </tr> <tr> <td> <pre>パスワード:</pre> </td> <td></td> </tr> <tr> <td colspan="2"></td> </tr> </tbody> </table>
LoginForm.java
[java]package jp.co.itboost.struts;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
public class LoginForm extends ActionForm {
private String id;
private String password;
// 名前
public String getId() {
return id;
}
public void setId(String _id) {
this.id = _id;
}
//パスワード
public String getPassword() {
return password;
}
public void setPassword(String _password) {
this.password = _password;
}
}
LoginAction.java
package jp.co.itboost.struts;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import javax.servlet.http.*;
public class LoginAction extends Action {
public ActionForward execute(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
{
LoginForm loginForm = (LoginForm)form;
// ログイン認証(IDとパスワードを照合)
if ("hogehogeId".equals( loginForm.getId() ) && "piyopiyoPass".equals( loginForm.getPassword() )) {
// ログイン成功
return mapping.findForward("success");
} else {
// ログイン失敗
return mapping.findForward("error");
}
}
}
[/java]struts-config.xml
[xml] <action path="/web/chap02/login" <---バインドしてるだけ。 type="chap02.LoginAction" name="chap02_loginForm" scope="request" ><!-- <forward name="success" path="/WEB-INF/jsp/chap02/success.jsp" /> -->
[/xml]
TIPS
 -サーブレットを変更した場合や、web.xmlを書き換えた場合は、Tomcat/Apacheの再起動が必要
技術の進化についていけていないシステムエンジニア。浅く広く、何でも大体はこなせるエンジニアで重宝されてる(つもり)。でもやっぱり特化した武器欲しい。
 備忘録として記事を投稿していますが、少しでも誰かの助けになればと思います。
 最近はプロジェクトでReact(TypeScript )を触っています。
趣味でギター弾きます。