Java
SeasarはHotDeployが凄い。とは聞いていたんですが、僕は勝手に「それってtomcatのauto reloadじゃないの。Seasarが頑張ってるんじゃなくて、Tomcatがやってるんでしょ。」みたいな食わず嫌いと言うか誤解をしていた。たまたまひがさんのブログでrailsについ…
乱立するJavaのWebApplicationのframeworkですが、流れとしてはRORに流れに乗って設定を行わない方向で進んでいます。そんななかで、Apacheプロジェクトに移っていたWicketが1.3でリリースされてます。 ざっとさわってみましたが、以下感想(と言っても、撫で…
自分で定義しちゃ、ダメよ。System.getProperty("line.separator")確かOS毎のline separatorを取得も出来たと思うんだけど忘れた。
名前を見た瞬間SoftDeleteを判断するメソッドかと思いきや、実は1行取得時のnull値判断を内包してるだけらしい。つまり、該当レコードが無い場合 Behavior.selectEntity()はnullになるが、 Behavior.selectEntityWithDeletedCheck()はnullにならず、EntityAl…
オブジェクト指向のデータベース。リレーショナルではないのでORマッピングみたいな余分な作業がいらない。この分野ではCachéが結構有名だけれども何せ高い。 4年前ぐらいにセミナー言ったけど、そのとき「ざっくり200万ぐらいからですかね。」とか言ってた…
Active RecordのJava実装は最近多いですが一番まともに行きそうなactiveobjectsというのを試してみました。以前にActiveRecordJavaを試してみましたが、まだまだ始まったばっかりって感じで、開発者自ら「infant」といっていましたが、こちらは結構出来てる…
StrutsのTaglibを使って、ループ処理をする場合、初回を条件指定するのはIndexIdプロパティを用いてできすが、最後を条件にするのにこまってました。taglibにbean:sizeというのを見つけました。コレクションのサイズをPageスコープに設定できるので、これ使…
S2StrutsでカスタムValidatorを作る際の手順。いつも忘れて悩むから validateメソッドを実装 validator.xmlに追加。 ココまではStrutsと同じ。 annotationインタフェースクラスを追加 ConfigRegisterをimplementsして、レジスタクラスを追加 validator.dicon…
S2Strutsはフォワード先をアノテーションで指定できるので設定が減っていいんですが、フォワード先あるいはリダイレクト先を動的に作りたい場合、堅物で困る。 アノテーションだったりスタティック定数だったりするので仕方ない面も感じますが。でも、どうし…
RORがはやってますが、RORがすごいのは確かに認めますがもっとすごいのはRubyのORマッパーのActiveRecordの方がすごいと思います。 ActiveRecordのおかげでRORは流行ったといっても過言じゃ無いでしょう。で、JavaでActive Recordパターンの実装をしてる人が…
丸めなんだから丸めなんだよ!!お題 0.51000001を小数点以下第3位で切り上げないさい。人間の感覚(多分) 0.51丸め 0.520.51にしたければ、第4位以下を切り捨ててから、やるのが正しい。間違って使うと数値狂うよ。
ページング処理って毎度毎度面倒臭いです。railsはActiveRecordで実装されてるし、phpはPEARでpagerあるし、CakePHPでもBakeryで既に実装方法が書いてあったりと自前で実装することは無くなってきます。Javaでもいくつかあるんだけど、古参としてjsptagsにあ…
・Actionの中で取得するとき org.apache.struts.action.Action#getResources(HttpServletRequest) MessageResources resources = getResources(req); String msg = resources.getMessage("key.string"); ・ActionFormの中で取得するとき org.apache.struts.v…
S2StrutsでPOJOなActionを作った場合、validatorでのエラー表示とActionでのエラー表示を同じタイミングで出すことはデフォルトではできません。actionのPOJOをあきらめてValidatorFormをextendすると以下の様にaction内でmessegeを取得できるようです。 Act…
JavaでOracleのPL/SQLをコールしている場合、PL/SQLをコンパイルした後にコールするとORA-6508でエラーになる場合があります。おそらくJavaでコネクションプールを使用しているせいで(リ)コンパイルが正しく反映できていないようです。そんな場合は素直にJav…
Tomcat5.0→5.5でDataSourceの設定方法が変わってる。うっとい。 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4"> MySQL Tes…
StrutsのメジャーバージョンアップはどうやらWebWorkベースらしい。 マニアック好きな僕はWebWork好きだったので結構うれしい。Strutsめんどくさいことが多すぎる。Is that all there is? Not by a long shot! Soon, we will also offer a new Action 2 fram…
Hibernateの2から3になったことでネイティブSQLのメソッドが変更されています。 ザックリとはQueryから分離され、SQLQueryで実装されています。実装は以下の通り SQLQuery query = getSession().createSQLQuery(sql); query.addEntity("abc", Abc.class);詳…
JDK5の拡張ループは配列に対する場合は添え字アクセス、Coellectionに対する場合はIteratorでの処理に変換されるみたい。 AllayListなどランダムアクセスが有効な場合は遅くなるらしいどう考えたってIteratorでやる方が遅くなるだろうけど、人間の感覚からし…
JDK5からは拡張ループにより記述を短くできます。 List系は覚えられるんだけど、Mapはなかなか頭に残らないのでimport java.util.*;public class For3 { public static void main(String[] args) { // マップにキーと値を格納する Map map=new HashMap(); ma…
日本語処理っていつも思うけど、もっとスマートにならんの? その点Perlはマルチバイト処理がいい感じでかける。見ても思い出すのに時間がかかるけどpublic static boolean containsHalfWidthKana(String str) { if (str != null) { char[] chars = str.toCh…
InputStream in = request.getInputStream(); int k; int aBuffSize = 1123123; String StringFromWS=""; byte buff[] = new byte[aBuffSize]; OutputStream xOutputStream = new ByteArrayOutputStream(aBuffSize);while ( (k=in.read(buff) ) != -1) xOutp…
J2SE1.5でターゲット指定してコンパイルすると以下のエラーがでちゃいました。 ターゲットリリース1.1がデフォルトのソースリリース1.5と競合しています だそうです。Javaの旧バージョンのコンパイル SUNのJavaはVer.1.1から1.2に変わるときに大きな変更があ…
JSPでの画像処理をやってくれるTaglib探してたらsandboxにありました。 早速試してみましたがどうもリサイズとかでは一旦servletにリクエスト投げてる模様。何故??でちょっといじったら 絶対URI: http://jakarta.apache.org/taglibs/image-1.0 はweb.xmlまた…
コーディングルールに反した記述をチェックしてくれます。 デフォルトでSunのJavaルールが入っているので、まずは慣れ程度に気にするのがいいかと。なれてきたら、まじめにルールセット作ってみるのもありかも。 本家 日本語リソースCheckStyle利用ガイド fr…
だいぶ前からだったのね。mod_jk2のサポート終了&開発停止は。 15 November - JK2 is officially unsupported JK2 has been put in maintainer mode and no further development will take place. The reason for shutting down JK2 development was the lac…
EJB使わんでもええやんかぁ〜〜
O-Rマッピングのツールとしてこんなのもあります。 まだ試してないけど・・・http://www.ibatis.com/
Cayenneを試して見ました。 Hibernateよりは簡単です。DAOは結局のところ独自実装??Cayenne: Overview@IT:話題のO/Rマッピングツール「Cayenne」を使う
assertが予約語になった関係でassertメソッドがassertTrueに置き換わってます。JUnitを利用する際、テストケースコンパイル時にメソッドassert()において警告が発生します。 テストケースコンパイル時に警告が発生します。以下はその例。 警告: リリース 1.4…