2010-01-01から1年間の記事一覧

36進数

Java で36進数変換を書いてみた。シーケンスとかコード生成まわりとかで使おうかなと。。。 /** * 36進数変換 long → String */ public static String long36String(long value){ if (value==0) return "0"; long v = value; StringBuilder sb = new StringB…

Wicket の DatePicker アイコンをデフォルト以外で

Wicket extension のDatePicker のアイコンは、デフォルトでは以下の画像である。 Wicket extension JAR ファイルの中には、このアイコンだけでなく2個のアイコン画像が 用意されてる。 デフォルト以外のアイコンや別途用意するアイコンにしたい場合は、 Da…

MySQL  PacketTooBigException が発生したら、

MySQL JDBC でBLOB列に大きいサイズのデータを格納しようとしたら PacketTooBigException が発生 Caused by: com.mysql.jdbc.PacketTooBigException: Packet for query is too large (2239583 > 1048576). You can change this value on the server by setti…

MySQL FUNCTION

MySQL ストアドFUNCTION を作成するとき、以下のようにデリミタを使うことを忘れやすい。 ----- createFunc.sql ファイルの内容 ----- DELIMITER // CREATE FUNCTION nextSequence() RETURNS INT BEGIN UPDATE sequence SET id=LAST_INSERT_ID(id+1); RETURN…

MySQL SEQUENCE iBATIS3 で。。。

MySQL で、Oracle SEQUENCE と同様の機能を作成する方法は、ネットで多く紹介されてる。 FUNCTION を用意してiBATIS3(myBatis) でシーケンス値取得を整理した。 MySQL シーケンスの代用テーブルを用意 CREATE TABLE sequence (id INT UNSIGNED NOT NULL); 1…

iBATIS3 ORDER BY 句の動的SQL

iBATIS3(mybatis) で、ORDER BY 句の動的SQL <foreach> で、ソートキーのフィールド名、ソートタイプ(ASC,DESC) を展開させる。 SQLを書く XML では、 以下のように記述 <select id="select" parameterType="パラメータクラス" resultType="SELECT結果クラス"> SELECT * FROM item WHERE price > #{price}} <if test="sizeList > 0"> </if></select></foreach>

Wicket 画像クリックでPanel切替

Wicket AJAX イベントでのPanel 切替えは、画像 onclick で切り替える方法も スッキリしたデザインになって良いと思う。 例えば、以下のような画面、[+] 画像のクリックで画像とともにPanel 切替を するとしたら、、、 [+] 画像をクリックすると以下のように…

AuthorizeAction で Panel表示制御

@AuthorizeAction による制御は、リンクだけに限らずコンポーネントであれば適用できる。 Panel 表示を制御したければ、専用のPanel継承クラスを用意すれば良い。 例) import org.apache.wicket.authorization.Action; import org.apache.wicket.authorizat…

パスワードによる SHA1 and トリプルDES 暗号化

DESede , AES と試したので、こんどはパスワードによる SHA1 and トリプルDES 暗号化 import java.util.Arrays; import javax.crypto.Cipher; import javax.crypto.SecretKey; import javax.crypto.SecretKeyFactory; import javax.crypto.spec.PBEKeySpec; …

AES 暗号化

こんどは、AES 暗号化、前回同様に、、、 import java.security.Key; import java.security.spec.AlgorithmParameterSpec; import javax.crypto.Cipher; import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.SecretKeySpec; /** * AES/CBC/…

トリプルDES

トリプルDES 暗号化・複合化のために Abstract クラスを作ってみた。 import java.security.Key; import java.security.spec.AlgorithmParameterSpec; import javax.crypto.Cipher; import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.Sec…

マウス hover で画像切り替えはCSSで

マウス hover で画像切り替えはCSSで可能 わざわざJavaScriptを書かなくても良いと思う。 ただしこの方法、切り替える画像をくっつけて1枚の画像にする必要がある。 <style type="text/css"> a.back#backbutton { display: block; width: 60px; height: 30px; text-indent: -100…

Eclipse WTP で、Tomcat manager起動

Eclipse WTP で Tomcat サーバ起動した時に、Tomcat の manager を開こうとしても そのままでが、404 not found である。 Ecliplse プロジェクトに出現する Servers で設定が必要なる。 Servers の server.xml に manager コンテキストを追加する。 <Context path="/manager" docBase="${catalina.home}/webapps/manager" privileged="true"/> tomcat-</context>…

パンくずリスト

Wicket でパンくずリストを実現する場合、よく紹介されるのが、 wicket-extensions のある org.apache.wicket.extensions.breadcrumb であるが、 これは、Panel を対象にしている。Page 遷移でのパンくずリストには使えそうもない。 そこで、アノテーション…

AuthorizeAction

wicket auth-role を使用した時にロール権限によるページリンクを有効/無効あるいは表示/非表示を、 いちいち、isVisible() オーバーライドや setVisible を呼んでいたのでは、たまらない。 そういう場合、AuthorizeAction アノテーションで制御するのが良…

AJAXカレンダー見直し

前に書いたAJAXカレンダー、年、月の表示をオーバーライドメソッドで自由にした方が良いと思った。 import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.List; import org…

form action 書き換え、というより制御

form タグの action 属性は、Wicket の通常ではformタグを記述したHTMLに対応する Pageクラスが送信先になる。これを別にしたり、任意に動的にURLにパラメータを追加 する場合は、Form で onComponentTag をオーバーライドする。 // パラメータ追加する場合…

wicket:id を取り除く場合

Wicket で、タグに記述する wicket:id を取り除く場合、 通常は、WebApplication の init() の中で、以下を実行する。 getMarkupSettings().setStripWicketTags(true); そうではなく、1つのタグの wicket:id を取り除く場合は、 対応するコンポーネントにビ…

メールアドレス正規表現

メールアドレス正規表現^[_A-Za-z0-9-]+(\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\.[A-Za-z0-9-]+)*(\.[A-Za-z]{2,3}){1}$Java ソース上では、、、、import java.util.regex.Pattern; : :Pattern ptn = Pattern.compile("^[_A-Za-z0-9-]+(\\.[_A-Za-z0-9-]+)*@[A-…

任意のテキストを出力

Wicket でHTMLページ以外、任意のテキストを返すには、 WebResponse の write を使用する。 setHeaders をオーバーライドして、Content-Type の出力をする。 それからWebPageクラスに対応するHTML は、空=0バイトで 用意しておく必要がある。 import org.a…

AJAXカレンダー(2)

デザインまで依存すれば、前回の投稿AJAXカレンダーのように、Panel の呼び出し側で 負担がかかることはない。しかし、デザインは自由度が制限される ここで悩んでいた。 突き詰めれば、以下のWebPage記述で済む。 public class CalendarTestPage extends We…

AJAX カレンダー

さらに前回の続き。CalendarDaysPanel の更新、ページの一部更新を AJAX で実行してみる /** * AJAX 更新カレンダー表示サンプル */ public class CalendarAjaxSample extends WebPage{ IModel<Date> targetDateModel; public CalendarAjaxSample(){ // 対象月の決</date>…

カレンダー(2)

前回のつづき、CalendarDaysPanel を使ってみる。 public class CalendarDaysTestPage extends WebPage{ public CalendarDaysTestPage(){ // 対象月の決定 CalenderHelper helper = new CalenderHelper(getRequestCycle()); // カレンダーPanel CalendarRequ…

カレンダー(1)

Wicket で、カレンダー表示を汎用的にできないかと考えた。 すくなくとも、HTMLタグと、日付部分だけでも使い回せれば楽になると思った。 <wicket:panel> <tr class="head"> <th class="sun">日</th><th>月</th><th>火</th><th>水</th><th>木</th><th>金</th><th class="sat">土</th> </tr> <tr wicket:id="calendar_days" class="days"> <td><a wicket:id="sun" class="calendar"> </a></td></tr></wicket:panel>

emタグへの置換を回避

Wicket ページリンクなど、enable を false にした時、 <a></a> が、<em></em> になってしまう。 これを回避するには、タグの書き込みのベースへの設定で回避することになる。 WebApplication サブクラスのinit で、 initメソッド内で、getMarkupSettings()して、IMarkupSett…

DatePicker in ModalWindow

Wicket DatePicker をモーダルウィンドウで表示しようとすると、 FireFox は、問題なく表示されるが、IE7,IE8 では、表示できない。 どうやら Wicket のバグのようだ。 https://issues.apache.org/jira/browse/WICKET-1940

Wicket HttpServletRequest

Wicket を使用していて、どうしても HttpServletRequest や、HttpServletResponse を 使用したい時にどうやって取得するか。。。 そんな RAW 型を使う機会は少ないが知っておいて損はない。 Wicket で原始的な Response を使う注意の1つ - Oboe吹きプログラ…

iBATIS3 と Guice

iBATIS3(mybatis) と Google guiceの組み合わせ、 ここに書いたもより、こちらを使うべき http://blog.zaq.ne.jp/oboe2uran/article/458/ http://blog.zaq.ne.jp/oboe2uran/article/459/ http://blog.zaq.ne.jp/oboe2uran/article/460/ ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ --…

CheckBoxMultipleChoice で初期値をセット

Wicket で、CheckBoxMultipleChoice で動的に checkBox を表示した時、 初期値としてチェックを付けるには、 final CheckBoxMultipleChoice<T> selectColor = new CheckBoxMultipleChoice<T>("choice" ,new PropertyModel<Collection<T>>(this,"tlist") ,getColorChoiceList() ,n</collection<t></t></t>…

AJAX の部分更新のリスタート

Wicket の AbstractAjaxTimerBehavior は、stop()メソッドが存在しても、start() は存在しない。 ページ全体をリフレッシュせずに、部分的に再表示を定期的に実行したり、停止したり再開する場合に、 どうしたらいいか悩んだ。 org.apache.wicket.ajax.Abstr…