GroupSession
一歩目でHello Worldでお世話になった素人です。次のステップとして、技術情報(5)データベースに接続する方法を実施してみました。技術情報通りに1)HelloWorldAction.javaを修正し2)UsidSelectGrpNameDao.javaを作成しました。UsidSelectGrpNameDao.javaの保存先が分からず、とりあえずHelloWorldAction.javaと同じフォルダに保存してみて実行してみました。3)結果画面上の変化がありません。画面に変化がないのは、Helloworld.jspに記述がないからかと思い、技術情報(6)セッション情報を取得する方法 にあるHelloworld.jsp修正を試し、画面が変化することは確認できました。但し、技術情報(5)と(6)の直接的な関連がつかめず、データベースに接続する感覚がつかめません。ひな形として、このソースを参考にすればなどあれば助かります。どなたかご教示頂ければと思います。よろしくお願いします。
こんばんは。技術情報のサンプル「(5)データベースに接続する方法 」の例でのグループ情報を Helloworld.jsp に表示したいのであれば、> 1)HelloWorldAction.javaを修正し サンプルのままでは、取得したデータをJSP側で参照するための器が 用意されていませんので、実際には ArrayList<GroupModel> gpList = gpDao.selectGroupNmList(usrSid); req.setAttribute("groupList",gpList); // <--こんな風に記述が必要 return map.getInputForward(); とか、になります。 この「"groupList"」を通してJSPから参照することになります。> 2)UsidSelectGrpNameDao.javaを作成しました。> UsidSelectGrpNameDao.javaの保存先が分からず、とりあえずHelloWorldAction.javaと> 同じフォルダに保存してみて実行してみました。 サンプルで紹介されているこのソースの実際は、GS本体のJava APIで用意されている jp.groupsession.v2.cmn.dao.UsidSelectGrpNameDao の抜粋で紹介されているものですので、改めて打ち込みません。 HelloWorldAction.java で、 import jp.groupsession.v2.cmn.dao.UsidSelectGrpNameDao; の記述があります。> 3)結果画面上の変化がありません。> 画面に変化がないのは、Helloworld.jspに記述がないからかと思い、 Helloworld.jsp に <logic:iterate id="groupModel" name="groupList"> <tr> <td colspan=5 align="center"> <bean:write name="groupModel" property="groupName" /> </td> </tr> </logic:iterate> のような記述などを追加してください。 これで、「(5)データベースに接続する方法 」のサンプルで取得している グループ一覧は、表示されるかと思います。ご健闘を祈ります。
”GS導入準備中の人”様ありがとうございます。うまくできました!感謝でございます。なにやら感動しておりまする。仕組みがおぼろげに見えてきたような気がします。間違っていたら容赦なく突っ込んでください。1)"HelloWorldAction.java"は内部処理で"Helloworld.jsp"が外部処理。2)"HelloWorldAction.java"も他の内部処理を読み込める。 (今回の場合は、"jp.groupsession.v2.cmn.dao.UsidSelectGrpNameDao"であった。)3)何か新しいデータベースを読み込む場合は、"UsidSelectGrpNameDao"のように新規で 作成して、HelloWorldAction.javaで読み込みHelloworld.jspに渡す。 簡単な記述なら"HelloWorldAction.java"に直に記述するのも可でしょうか。プログラム作成が不慣れでとりあえず、頂いた構文をそのまま使用しました。教えて頂いた、Helloworld.jspの最初の <logic:iterate id="groupModel" name="groupList">で、<logic:iterate はプログラムの約束毎でしょうか。調べてみてなにがしかのタグであることまではわかりましたが、なにやら説明を読んでも理解不能でした。技術情報(6)セッション情報を取得する方法の下記例文(赤文字部)と異なるようで、若干混乱しております。<% String key = jp.groupsession.v2.cmn.GSConst.SESSION_KEY; %><!-- ユーザ名:姓 --> <bean:write name="<%= key %>" scope="session" property="usisei" /> 質問重ねで恐縮ですが、お答え頂ければ幸いです。よろしくお願いします。
こんにちは。> 仕組みがおぼろげに見えてきたような気がします。間違っていたら容赦なく突っ込んでください。> 1)"HelloWorldAction.java"は内部処理で"Helloworld.jsp"が外部処理。> 2)"HelloWorldAction.java"も他の内部処理を読み込める。> 3)何か新しいデータベースを読み込む場合は、"UsidSelectGrpNameDao"のように新規で> 作成して、HelloWorldAction.javaで読み込みHelloworld.jspに渡す。 GSは、Apache Struts 1.3.* のフレームワークを拡張して構築されていますので、 基本的なプログラムの動作の流れは、Struts での MVC モデルの動作に準じます。 なので、今は上記のような理解でもいいかもしれませんが、一度 Struts 1.3.* (1.2.* でも可)の 教科書本などを読まれることをお勧めします(お勧め本は特には無いです、ご自身が 理解しやすい本を探されるのがベターだと思いますので)。> 教えて頂いた、Helloworld.jspの最初の > <logic:iterate id="groupModel" name="groupList">> で、<logic:iterate はプログラムの約束毎でしょうか。> 調べてみてなにがしかのタグであることまではわかりましたが、なにやら説明を読んでも> 理解不能でした。技術情報(6)セッション情報を取得する方法の下記例文(赤文字部)と> 異なるようで、若干混乱しております。 「<logic:iterate ~>」は、Strutsで提供されている拡張されたタグです。 "Helloworld.jsp" の先頭のほうで <%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %> として、定義を読み込んでいます(という理解でよいと思います)。 「groupList」が「HelloWorldAction.java」で「ArrayList<>」と用意されているので、 先に私が示した内容の意味的には、他の言語のような表現を借りると、 <Perlっぽい?> for each groupModel in groupList puts groupModel.groupName end <Javaっぽい?> for ( groupModel : groupList ) { System.out.print( puts groupModel.groupName ); } 見たいなことをしています。 また上記の表現で言えば、「 puts 」なり「 System.out.print 」が 「 <bean:write ~> 」に相当します。ご健闘祈ります。
”GS導入準備中の人”様ご丁寧に解説いただきありがとうございました。何となく入口付近にたどり着いた気がします。三歩目に行けるよう精進したいと思います。今回はありがとうございました。
TOP