最終更新日: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 )を触っています。
趣味でギター弾きます。