ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

Strutsの要素技術の基本的構造(その4 基本サンプルソース)

2009-09-01 17:16:46 | Weblog

Strutsの要素技術の基本的構造の話。
 結局、
・Action
・ActionForm
・Struts-config.xml
・JSPファイル
 のファイルが必要で、その内容と、定義書の関係はわかったけど、結局、どのファイルが、どんなふうになってるのよ?
 っていうことですよね。
 その4種類のファイルサンプルを書きます。




■サンプルの内容

ような、2つの数をいれると、

のかんじで、足し算結果を出すプログラムのソース




■ソースファイル1-Struts-config.xml
こんなかんじ
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE struts-config PUBLIC
          "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN"
          "http://struts.apache.org/dtds/struts-config_1_3.dtd">

<struts-config>

    <form-beans>
        <form-bean name="tashizanForm" type="tashizan.tashizanActionForm"/>
    </form-beans>

    <action-mappings>
        <action
            path="/tashizan"
            type="tashizan.tashizanAction"
	    name="tashizanForm" scope="request" validate="false">
	          <forward name="success" path="/kaito.jsp"/>
	          <forward name="error" path="/error.jsp"/>
	</action>
    </action-mappings>

</struts-config>

(上記 < > ¥は、本当は半角)

上記で、JSPは、kaito.jsp、error.jsp(ActionのForward参照)
    Actionは、tashizanAction(Action参照)
    ActionFormは、tashizanActionForm(form-bean参照)
があることがわかる。
 実はこのほかに、一番初めの起動画面index.jspがある。

 以下、これらのサンプルになります。




■ソースファイル2-Action

 Actionが記述されたファイルは、tashizanActionクラスが記述されている
tashizanAction.javaになります。
 その内容は、以下のとおり。
package tashizan;

import java.io.IOException;
import java.sql.SQLException;

import javax.servlet.ServletException;
import javax.servlet.http.*;

import org.apache.struts.action.*;

public class tashizanAction extends Action {
	 public ActionForward execute(
		     ActionMapping mapping,
		     ActionForm form,
		     HttpServletRequest request,
		     HttpServletResponse response) {

		 				//	画面パラメータの取得
	        tashizanActionForm myForm = (tashizanActionForm)form;
	        				//	セッションの取得
        	HttpSession session = request.getSession();
	        
        	String nextStep="success";	//	次画面

        	try
	        {
	        	int	i1	=	Integer.parseInt(myForm.getParm1());
	        	int	i2	=	Integer.parseInt(myForm.getParm2());
	        	if ( (i1 <= 0 ) || (i2 <= 0 ))
	        	{
		        	session.setAttribute("kekka", "0より大きい数を入れてください");
		        	nextStep	=	"error";
	        	}
	        	else
	        	{
	        		session.setAttribute("kekka", String.valueOf(i1+i2));
		        	nextStep	=	"success";
	        	}
	        }
	        catch(Exception e)
	        {
	        	session.setAttribute("kekka", "数値を入れてください");
	        	nextStep	=	"error";
	        }

        	return (mapping.findForward(nextStep));
	 }
}


(上記 < > ¥は、本当は半角)




■ソースファイル3-ActionForm

 ActionFormが記述されたファイルは、tashizanActionFromクラスが記述されている
tashizanActionForm.javaになります。
 その内容は、以下のとおり。
package tashizan;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts.action.*;

public class tashizanActionForm extends ActionForm {
    private String parm1;
    private String parm2;
    private String result;

    public String getParm1() {
        return parm1;
    }

    public void setParm1(String parm1) {
        this.parm1 = parm1;
    }

    public void setParm2(String parm2) {
        this.parm2 = parm2;
    }

    public String getParm2() {
        return parm2;
    }

    public String getResult() {
        return result;
    }

    public void setResult(String result) {
        this.result = result;
    }

}





■ソースファイル4-JSPファイル
JSPは、結局、kaito.jsp、error.jsp、index.jspが必要になります。

まず、kaito.jspはこんなかんじ
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %>
<%@ page contentType="text/html; charset=utf-8" %>

<HTML>
  <HEAD>
    <TITLE>足し算</TITLE>
  </HEAD>
  <BODY>
    結果<BR>
    <H2>
      <bean:write name="tashizanForm" property="parm1" scope="request"/>+
      <bean:write name="tashizanForm" property="parm2" scope="request"/>=
      <bean:write name="kekka" scope="session"/>
    </H2>
    <A HREF="index.jsp">戻る</A>
  </BODY>
</HTML>

(上記 < > ¥は、本当は半角)

次に、error.jspは、こんなかんじ
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %>

<HTML>
  <HEAD>
    <TITLE>足し算</TITLE>
  </HEAD>
  <BODY>
    <H2>
      <bean:write name="kekka" scope="session"/>
    </H2>
    <A HREF="index.jsp">戻る</A>
  </BODY>
</HTML>

(上記 < > ¥は、本当は半角)


最後に、index.jspはこんなかんじ
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %>
<%@ page contentType="text/html; charset=utf-8" %>
<html:html>
  <HEAD>
    <TITLE>足し算</TITLE>
  </HEAD>
  <BODY>
<html:form action="/tashizan" focus="parm1">
<html:text property="parm1" size="6"/>+
<html:text property="parm2" size="6"/>
<html:submit property="submit" value="="/>
</html:form>
</BODY>
</html:html>

(上記 < > ¥は、本当は半角)




■このほか

起動には、ほかにweb.xmlや各種jarファイルが必要です。
しかし、それらは、

・Strutsをダウンロードして、解凍するとでてくるappsにある
 struts-blank-1.X.XX.warをTomcatのwebappsの下において、

・起動するとstruts-blank-1.X.XXが解凍され

・その下にあるWEB-INF

(X,XXには、バージョン番号が入ります)

をコピーすればいいだけなので、省略します。
(実際今回のプログラムでは、そのへんはコピーしただけで、
 手を入れていません)




ってことで、今回は終わり。というか、これで基本的な話は終わりで、
次回から、いろいろ応用編の話


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

携帯端末向けマルチメディア放送

2009-09-01 14:28:27 | Weblog

 そういえば、前にここに書いたのは、ホワイトスペース利用としての、
 ケータイワンセグなどの利用だったけど、

 同じような話で、現在のアナログテレビが地デジに移行することによって
 あく周波数を利用して、携帯端末向けの放送をしようという話があるらしい
 ですね!


携帯端末向けマルチメディア放送の実現に向けた制度整備に
関する基本的方針」及び参入希望調査の概要の公表
http://www.soumu.go.jp/menu_news/s-news/02ryutsu07_000017.html


「携帯端末向けマルチメディア放送」

これによって、放送局が増えると、そのためのシステム開発の
特需とか、生まれるんでしょうか?



  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

民主党になると、電子政府ってどうなるの?

2009-09-01 11:21:35 | Weblog

っておもって、
民主党の2009年の間マニュフェスト
http://www.dpj.or.jp/special/manifesto2009/

みたけど、よくわかんない(-_-;)

ここ
政権交代で電子政府は変わるのか、民主党に期待すること
http://blog.goo.ne.jp/egovblog/e/8ee34441e94819f4ebb6f7aaffe5be6d

がまとめてくれている。

年金とか、なんかいっぱい発注してくれるのかな(^_^)v
期待感わくわく・・・
といっても、年金関係に食い込んでるソフト会社ってきまってるからなあ。。。
そこ以外は期待できないのかなあ??

ま、ふつーに考えると、電子化しなくても困ってないわけで、
なら、電子政府プロジェクト全部凍結!
って言っても不思議ではないが、
どちらかというと、むしろ、業界にお金を落としてくれる方向なのかしら??

・・・ならいいけどね!

P.S それより、電波行政はどーなるんでしょーね?

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする