strutsを触る

最終更新日: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() ) &amp;&amp; "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の再起動が必要

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です