2017年6月29日木曜日

StrutsでJSPに一行に複数のデータがあるもの(List)を表示するには(Group Session)

Group Sessionのデータベースアクセスのサンプルを参考にいろいろ試してみた。
Strutsで Jsp表示にlogic:iterateなるものがあるけれど
これを使って、GroupModeのリストを表示したいと思いいろいろやってみたが
情報が少なくて苦労する。
結局http://www.ne.jp/asahi/hishidama/home/tech/struts/logic_iterate.html
のサイトが一番参考になりました。

<logic:iterate id="item" name="YoteiForm" property="gpList" type="jp.groupsession.v2.cmn.dao.GroupModel" >
<bean:write name="item" property="groupName"/><br>
</logic:iterate>
といった感じでやってみたら、うまくいきました。

YoteiAction:
    YoteiForm yoteiForm = (YoteiForm)form;
        ArrayList<GroupModel> gpList = gpDao.selectGroupNmList(usrSid);
          yoteiForm.setGpList(gpList);
        return map.getInputForward();

YoteiForm:
 ArrayList<GroupModel> gpList_ = new ArrayList<GroupModel>();
public void setGpList(ArrayList<GroupModel> gpList) {
    gpList_ = gpList;
}

public ArrayList<GroupModel> getGpList() {
    return gpList_ ;
}
といった感じです。

 Strutsは脆弱性の問題で、Springに移行しつつあるようですが、いまだにCOBOLやVB6が使われているように、しばらくは残るのだろうと思われます。新規で使うことはないにしても、カスタマイズする必要性はしばらく続きそうです。
 フレームワークを使いこなせるようになるまでには、まだまだ道は険しいようです。


2017年6月23日金曜日

eclipseでgroupsessionのコンパイル

 グループセッションでは、サイトでソースも公開されており、プラグインの作り方もでているので、試してみた。久々に、tomcatの設定をしたため、だいぶ試行錯誤が必要だった。
 最初うまくいかなかったが、原因はクリーン処理してからビルドしたことだった。必要なリソースファイルが、消えてしまってうまくいかなかったようです。classesフォルダの中をクリーンしてしまってはだめなようです。

 HDDでは、最新のeclipseがきつくなっています。SSDで使うことでだいぶストレスが緩和されるようになりました。

 1 eclipseの最新版をセット。tomcatつきだと、何かと便利
2 tomcat7を使ってみた webappsの中に目的のプロジェクタのフォルダを作成
 gsessionという名称で作成。
 念のため、最初にソースなしのものを作成し、さらにソース版をコピーした。(同一ファイルはスキップさせるようにして)
3 eclipseのwrokspace切り替えでtomcatのwebappsを指定
4 eclipse のファイルシステムからプロジェクトを開くをクリック>ディレクトリ>さきほどのtomcatの中のgsessionフォルダを指定

あとは、サイトの説明にあるように
*WEB-INF/LIBのライブラリの登録、tomcatのライブラリ登録、JREの登録
*コンパイラを1.6にする等(1.7や1.8でもOkなような気もしますが。。)
*WEF-INF/pluginの中の各プラグインの中のsrcフォルダを、ソースフォルダとして登録が必要

サイトの説明にないこととして
*ビルド結果の出力先として、ディフォルト出力フォルダー gsession/WEB-INF/classes の設定が必要です。(プラグイン追加の場合はこちらには追加ならないようですが)
*WEB-INF/plugin/commonなどフォルダの中にMessage.propertiesがあるものも、ソースフォルダとして登録しておいたほうがいいようです。


プラグインの作成について
 サイトの説明でほほできますが、build.xmlの中の設定で、ビルドエラーを回避するため
<property name="SRC.ENC" value="UTF-8" />と修正する必要がありました。











eclipse4.6へのtomcat plugin

tomcat pluginはマーケットプレイスからはうまくインストールできなかった
https://sourceforge.net/projects/tomcatplugin/files/
こちらから zipファイルをダウンロードして
これをヘルプの新規ソフトウエアインストール>追加>アーカイブでzip指定

2017年6月5日月曜日

three.js

javascriptにもさまざまな、ライブラリがある。
three.jsは、3D表示に特化したライブラリ。
サンプルプログラムに、地球を表示するものがあった。
地球の自転軸は23.4°ほど、公転面の垂直方向に対して傾いているが
このように、回転軸を傾けて動かす方法がなかなかわからなかった。

var axis = new THREE.Vector3(0.3,0.7,0);で、傾いた回転軸のベクトルaxisを決め
group.rotateOnAxis (axis, Math.PI/100); で球体を回転させる
という手順でうまくいった。
ただ、北極、南極を軸にして回転させるまでにはいかなかった。そのためには、もう少し工夫が必要なようだ。

https://rasp.cld9.work/py/earth

※若干、バグがあり、修正2017/6/17
var axis = new THREE.Vector3(0.397,0.918,0);
としました。このベクトルは単位ベクトルにする必要ありました。
そうしないと、回転している間に形がゆがむようでした。


Struts

Strutsを少しさわってみた。
フレームワークというのは、暗黙の決まり事みたいなものが多いと感じる。
そうしないと、グループで仕事をするときに統一とれなくなるのかもしれない。
railsやspringでは、「設定より規約」という方針があるようだけど、そういった
方針へ移行している感じがする。 

たとえばstruts-config.xmlで
<message-resources parameter="MessageResources"/>
としてリソースを指定するけど、実際のファイル名はMessageResources.propertiesだったりする。
この場合、WEB-INF/src/MessageResources.propertiesという位置になければならない。