サポート > Wagby Developer Network > カスタマイズ事例 > DbFreeActionを継承する

手順

ここでは Wagby で開発したシステムに、独自に用意した画面を組み込む方法を説明します。

  1. 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 メソッドを適切に実装することで、このアクションを実行できる利用者を制限することもできます。

  2. このアクションクラスに対応した 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 を使うことができます。

  3. 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>
    
    

  4. 一連のビルド処理(定義ファイル変換ならびにビルド)を行ない、アプリケーションを生成します。
  5. wagbyapp を起動後、Web ブラウザから「http://localhost:8921/wagby/myAction.do」と入力します。すると、カスタマイズした画面が表示されることを確認できます。

このページ

カスタマイズ事例