サポート > Wagby Developer Network > カスタマイズ事例 > DbFreeActionを継承する
手順
ここでは Wagby で開発したシステムに、独自に用意した画面を組み込む方法を説明します。
- Struts のアクションクラスを用意します。サブパッケージは「struts」以下に適当に準備します。ここでは、pub というサブパッケージを使った例を示します。
package jp.jasminesoft.wagby.struts.pub; // 以下の import 文は用意しておいてください。 import java.security.Permission; import java.io.*; import java.util.*; import java.text.*; import java.sql.SQLException; import javax.servlet.ServletException; import org.apache.struts.action.ActionForward; import org.apache.log4j.Logger; import jp.jasminesoft.util.*; import jp.jasminesoft.jfc.*; import jp.jasminesoft.jfc.tag.CheckLogonBase; import jp.jasminesoft.jfc.menu.*; import jp.jasminesoft.jfc.model.master.*; // ここに必要なストアモデル、プレゼンテーションモデルのインポートを // 行ってください。 public class MyOriginalAction extends DbFreeAction { /** Logger クラスを準備します。 */ private final static Logger logger = Logger.getLogger(MyOriginalAction.class.getName()); /** * 適切なパーミッションオブジェクトを返します。 * * このメソッドをオーバーライドしない場合は、誰でもアクセスできる * ようになります。 * * @return Permission */ /* @Override public Permission getPermission() { // カスタマイズし、適切な権限を指定してください。 return new JFCAppPermission("name", "value"); } */ /** * 自由記述です。 * * @param p DbActionParameter * @return ActionForward * @exception IOException * @exception ServletException * @exception SecurityException */ public ActionForward do_free(DbActionParameter p) throws IOException, ServletException, SecurityException { // for test p.request.setAttribute("msg", "Hello, My Page!"); return (new ActionForward(p.mapping.getInput())); } }この例に示すように、開発者は DbFreeAction クラスを継承したオリジナルのアクションを用意し、do_free メソッドを実装します。do_free メソッドには DbActionParameter 型のオブジェクト p が渡されますので、例えば p.con を使えばデータベースアクセスを行うことができるようになります。
また、Log4j クラスの logger を宣言することで、ログ出力を行うこともできます。
さらに getPermission メソッドを適切に実装することで、このアクションを実行できる利用者を制限することもできます。
- このアクションクラスに対応した JSP ファイルを用意します。これを $(DEVHOME)\customize\webpage\pub\myaction.jsp として保存します。ファイルの文字コードは UTF-8 として保存してください。
<%@ page pageEncoding="UTF-8" errorPage="error.jsp" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <body> <h1>My Action</h1> <p> <c:out value="${msg}"/> </p> </body> </html>JSP 内では JSTL を使うことができます。
- struts-config.xml へ、上記のアクションクラスを追加します。$(DEVHOME)\customize\webpage\WEB-INF\struts-config フォルダを作成し、その中にカスタマイズ用のファイルを置きます。ここでは public-flow.xml とします。
<?xml version="1.0" encoding="ISO-8859-1"?> <action path="/myAction" type="jp.jasminesoft.wagby.struts.pub.MyOriginalAction" input="/myaction.jsp"> </action>
- 一連のビルド処理(定義ファイル変換ならびにビルド)を行ない、アプリケーションを生成します。
- wagbyapp を起動後、Web ブラウザから「http://localhost:8921/wagby/myAction.do」と入力します。すると、カスタマイズした画面が表示されることを確認できます。
