スポンサーサイト


上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

SVFからExcelファイルを出力できる


Javaと連携して帳票を作成するソフトのSVFから、
Excel形式の帳票を出力できる新製品「SVF for Excel」が発売されているとのこと。

紹介サイト:
ウイングアーク、「SVF for Excel」を新発売:企業のIT・経営・ビジネスをつなぐ情報サイト EnterpriseZine (EZ)

詳細(発売元サイト):
SVF for Excel SVF/RDE ウイングアーク

最近は、システム開発の要件の中にも、Excel形式で帳票を作成して欲しいというものが
増えているという実感がある。
まったく新しくシステムを開発する場合はもちろん、
今までSVFを使ってPDFの帳票を出力していたものをこのSVF for Excelを使ってExcel化するというのも
今後増えてくる可能性があるのではないかと思う。

スポンサーサイト

システムに適用する技術の判断材料


Strutsがレガシーフレームワークになりつつあるという話から、
システムを開発する上でのフレームワーク(FW)というか、技術全般の判断材料の重要性を感じた。

いつまでStruts1を使い続けるの? - 達人プログラマーを目指して

確かに、作ろうとしているシステムにおいて、
StrutsがJavaのMVC FWのデファクトスタンダードだ(った?)という実績を重視したり、
社内標準のFWに組み込まれているからということだったり、という点で判断して
Struts(およびそれベースのFW)を適用するのがベストとされるのはなんだか腑に落ちない。

Strutsに限らず、システムを開発するときに、
そのFWを適用するのが技術的にベストなのか、という判断は常にする必要がある。

実際問題として、社内外の利害関係等に流されてしまうこともあるのかもしれないけど、
それでベターならまだいいが悪い方向に倒れてしまうこともありうるわけで、
やっぱり技術者としてはお客さんからの要件に対して、作り手側からのベストのやり方を提案したい。

いくら使ってみたい技術があったとしても、要件を満たせないなら、即NG。
要件を満たせたとしても、他に客観的に見てより良い技術があるのであれば、別の技術を選択すべき。
複数の技術がお客さんから見た要件を満たせたとしても、
作り手側から見た難易度や要件との適合性等から判断して、より良い物を選ぶべき。

好みや実績だけ、あるいはそれらを最優先の判断材料にして、
システム開発に使用する技術を選ぶべきではないと、改めて強く感じた。


Strutsで画面表示時に「Unmatched braces in the pattern」のエラーが発生


Javaの研修で画面を表示するときに
「Unmatched braces in the pattern」というエラーが出て嵌ってしまった。

結局その場では解決できなかったのだが、
後から調べてみると、ApplicationResources.propertiesの
記述方法がまずい可能性があることが分かった。

[JavaHouse-Brewers:47164] struts の タグについて

考えたのですが、ApplicationResources.propertiesの記述(ここでは「ボ」(0x83,0x7B))に
0x7Bが含まれていると「{」(0x7B)とごっちゃになって上の例外が出てしまうのでは、
という気がしました。

Unicodeに変換したときに「{」(0x7B)と同じコードが出てくると
括弧(brace)が合わないよ!と怒られるんじゃないかとのこと。

本当かなぁ。
試してはないので、真偽の程は定かではないのだが。。


JD : Java用デコンパイラ


Java用のデコンパイラといえば、JADがよく知られているが、
フリーウェアの"JD"というものもあるらしい。

紹介記事:
MOONGIFT: ≫ Java用デコンパイラー「JD」:オープンソースを毎日紹介

ダウンロードサイト:
JD | Java Decompiler

GUI版とEclipseプラグイン版とがあり、
Java開発においては使い勝手がよさそう。

JSPのinclude


JSPでincludeを行う方法。

<%@include>を使用する方法


以下のように書く:

<%@include file="[FILE_PATH]" %>

この方法だと、include元JSPがコンパイルされるときにincludeされるので、
固定値(パラメータの指定とか)を複数JSPに共通でincludeするときに向いている。

<jsp:include>を使用する方法


以下のように書く:

<jsp:include page="[FILE_PATH]" flush="true | false"/>
  <jsp:param name="[PARAM_NAME]" value="[PARAM_VALUE]"/>
</jsp:include>

この方法では、実際に処理されるときにincludeされるときにincludeされるため、
処理によって条件が分岐するときなどはこちらの方法を使う必要がある。

また、<jsp:param>タグでincludeするJSPに渡すパラメータを指定することもできる。
include先のJSPで request.getParameter([PARAM_NAME])として
[PARAM_VALUE]に指定した値を受け取ることができる。

>jsp:include<の flush 属性って、trueしか指定したことないけど
(tomcatとかだとtrueにしないとエラーになるみたいだし)、
falseを指定するようなケースってあるんだろうか。


ArrayListの"ディープコピー"


JavaでArrayListを単純にcopyするだけではその要素まではコピーされず、
ArrayListの要素数文ループするなどの処理が必要になる。

これを以下の記事にあるようなメソッドを作っておくことで簡単に
"ディープコピー"することができる。

codeなにがし::Javaでオブジェクト(ArrayListなど)のディープコピーを行う

HashMapのArrayListオブジェクトをディープコピーしようとすると、ループ文で1個づつコピーしなければなりませんが、ちょっと面倒です。そこで、ObjectOutputStreamで対象オブジェクトをシリアライズしてバイト配列に変換できることを利用して、ディープコピーするメソッドを紹介します。


いつか使えそう。


古いJREを一掃するフリーソフト


Javaのバージョンをあげていくと、
古いバージョンのJREフォルダが残ったままになってしまう。
これをきれいにしてくれるフリーソフトがあるとのこと

MOONGIFT: » 古いJREを一掃する「JavaRa」:オープンソースを毎日紹介

WindowsでJavaを使っていると、時々アップデーターが通知を行ってくる。そしてそれに従ってアップデートを行うと新しいバージョンの JRE(Java Runtime Environment)がインストールされるのだが、Program Files以下にはバージョン違いのJREが増えていく。 

アップデートするなら上書きでも良いのではないかと思うのだが、なぜかしない(バージョン番号が変わって動作しなくなることがあるからだろうか?)。そしてバージョン違いのJavaがどんどん増えて邪魔に感じてくる。そこでJavaRaを使って一掃してしまおう。

JavaRaは古いJREを一気に削除してくれるオープンソース・ソフトウェアだ。


ただ、特定のプロジェクトでJavaを使うとなると、
バージョンをあえてあげないことも多々あると思われ、
そんなにこれが活躍する機会はないのかもしれない…。


JAD


ちょっと必要に駆られて、JavaのデコンパイラであるJADを使ってみた。

Home Page of Jad - the fast Java decompiler

インストールは、ダウンロードして適当な場所に解凍するだけ。
パスが通ってないフォルダだとJADの呼び出しに不便なので、
インストールしたフォルダにパスを通すか、
JavaのホームにJADの実行ファイル:jad.exeを移動するかしておく。

使用方法もいたって簡単。

jad filename.class

で現在のフォルダにでコンパイルした結果としてfilename.jadが作成される。

"-s"オプションで、作成されるファイルの拡張子を指定することもでき、

jad -sjava filename.class

とすると、結果ファイルがfilename.javaとなる。

"-o"オプションで、上書きして作成、
"-r"オプションでパッケージのフォルダ構造を作ってくれる。
でコンパイルして、Eclipseにインポートするときは、
"-r"オプションを指定しておくと便利。

JADの使い方はここがよくまとまっている:
Javaの逆コンパイラJadのインストールと使い方|情報科学を学ぶ大学生のブログ


Eclipse上で、デコンパイルした結果を参照する
JadClipseプラグインを使用することもできる。

@IT:Java TIPS -- Eclipseで逆コンパイルを行う


Strutsの<html:checkbox>と<html:multibox>


<html:checkbox>は単体のチェックボックスを一つのStringで、
<html:multibox>は複数のチェックボックスを一つのStringの配列で扱う。

初めて<html:multibox>を使ってみた。

<html:multibox>は以下のように書く:
<html:multibox property="MODEL_NAME.PROPERTY_NAME" styleId="STYLE_NAME" value="VALUE" /><label for="STYLE_NAME"/>項目名</label>

モデルMODEL_NAMEの属性PROPERTY_NAME
Stringの配列で定義しておくと、
チェックを入れたチェックボックスのvalue属性で指定した値が
ActionとかEJBとかでStringの配列で受け取れる。

チェックボックスの項目名を<label>で囲んでおくと、
それをクリックしたときにSTYLE_NAMEが等しいチェックボックスにチェックが入る。


Javaのcommons-langを活用する


Javaのcommons-langライブラリって、
今まであんまり意識して使っていなかったけど
よくよく見てみると結構便利なメソッドが揃っている。

APIとかダウンロードとかはこちら:
Lang - Home

使用例はこちら:
commons-langの便利メソッド:特集 - builder by ZDNet Japan

暇なときに目を通しておこう。
頭に入ってないと、いざ使う機会が来ても思い浮かばないから。


Adsense
ブログ内検索
カテゴリー
最近の記事
カレンダー
07 | 2017/08 | 09
- - 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31 - -
月別アーカイブ
feedmeter & あわせて読みたい
フィードメーター - あるシステム屋によるJava開発の記録
あわせて読みたいブログパーツ
プロフィール

kamii

Author:kamii
ピタゴラスイッチ好きなシステム開発屋@二児の父です。

メールフォーム

名前:
メール:
件名:
本文:

カウンター
checker
ページランク


ブログチャート
現在時刻
全エントリ表示

全てのエントリを表示する

RSSフィード
リンク
ブロとも申請フォーム

この人とブロともになる

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。