コンピュータクワガタ

かっぱのかっぱによるコンピュータ関連のサイトです

Java

Spring MVC 4.0 No. 012 Validatorでnullチェック

Springは標準でBean Validationをサポートしており、Spring 4.0からはJSR-349のBean Validation 1.1をサポートしています。今回はSpringでBean Validationを使うための設定と、nullチェックのサンプルを紹介します。まず、MavenでBean Validation関連のライ…

Spring MVC 4.0 No. 011 受け取る型のチェック

今までパラメータはすべてStringで受けていたので、型変換のエラー等は発生していませんでした。今回は、String型以外の型でパラメータを受け取りどのような動作になるかを確認していきます。最初にパラメータを受けつ取るクラスを作成します。price変数をIn…

Spring MVC 4.0 No. 010 任意のクラスで受け取る

今回は、リクエストパラメータを任意のオブジェクトで受け取ります。最初にデータを受け取るクラスを作成します。フィールド名は受け取るパラメータ名と同じにしておきます。 package com.example.spring.controller; public class Customer { private Strin…

Spring MVC 4.0 No. 009 HttpEntityで受け取る

今回はSpringで用意されているHttpEntityクラスでリクエストを受け付けます。 @RequestMapping("/entityForm") public String entityForm() { return "req/entityForm"; } @RequestMapping(value = "/entityRecv", method = RequestMethod.POST) public Stri…

Spring MVC 4.0 No. 008 Reader/InputStreamで受け取る

RequestBodyのデータをReaderやInputStreamで受け取ることができます。今回はより簡単なReaderで受け取っています。読み取った1行目のデータをレスポンスに返しています。 @RequestMapping("/readerForm") public String readerForm() { return "req/readerF…

Spring MVC 4.0 No. 007 HttpServletRequestとそれに近いもの

今回はHttpServletRequestとSpringで用意されている、Reqeustのようなクラスです。WebRequestは色々便利に使えますが、今回はHttpServletRequestと同じ動きができるというところだけ確認します。 @RequestMapping("/req") public String req(HttpServletRequ…

Spring MVC 4.0 No. 006 リクエストボディをそのまま受け取る

POSTリクエストのデータは、GETリクエストと同様に@RequestParamで受け取ることもできますが、リクエストボディの生データをそのまま受け取ることもできます。 @RequestMapping("/bodyForm") public String bodyForm() { return "req/bodyForm"; } @RequestM…

Spring MVC 4.0 No. 005 GETパラメータを受け取る

通常のGETパラメータを受け取るには、@RequestParamアノテーションを使用します。 @RequestMapping(value = "/getParam") public String getParam(@RequestParam String foo, @RequestParam String bar, Model model) { model.addAttribute("modelFoo", foo)…

Spring MVC 4.0 No. 002 web.xmlの量を減らしたい

Java EE 6からプログラムからServletやFilterを登録できるようになりました。そこで、001回目のweb.xmlをプログラムに置き換えてみます。まず、web.xmlです。

Spring MVC 4.0 No. 001 Hello world

Spring MVCでHello worldを表示する最低限のプログラムです。これ以降のサンプルの基本となる部分です。Springに必要なライブラリーは依存関係が複雑で大変なのでMavenで導入するのが簡単です。pom.xml <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>4.0.6.RELEASE</version> </dependency> </dependencies>

JSR 349: Bean Validation 1.1でEL 3.0を使ってメッセージをカスタマイズしよう

JSR 349: Bean Validation 1.1ではメッセージをEL 3.0を使ってカスタマイズできるようになりました。今回は、文字列の長さチェックのValidatorをサンプルにEL 3.0を使うとこんなことができますよというのを紹介します。まず、Bean ValidationをMavenで準備し…

Spring JDBCの紹介 No. 4

Spring JDBCの4回目です。今回で最後です。今までSELECT文では複数行を取得してきましたが、今回は1行もしくは1つのデータを取得する例を見ていきます。 キーで取得 主キーでデータを取得する場合などには、多くても1行のデータのみを取得する場合は多くあり…

Spring JDBCの紹介 No. 3

Spring JDBCの3回目です。今回はSELECT時のNamedParameterJdbcTemplateのサンプルです。今回のソースです。 @Autowired private JdbcTemplate jdbcTemplate; @Autowired private NamedParameterJdbcTemplate npJdbcTemplate; public List<Book> searchBookList1(St</book>…

Spring JDBCの紹介 No. 2

Spring JDBCの2回目です。今回は更新系の処理のパラメータ処理を通して、Spring JDBCの便利なところを確認していきます。 NamedParameterJdbcTemplate 今回はNamedParameterJdbcTemplateを使います。そのため、最初にBean定義をしておきます。 <bean class="org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate"> <constructor-arg ref="dataSource" /> </bean> NamedParam…

Spring JDBCの紹介 No. 1

Spring FrameworkのSpring JDBCを使っていたのですが、もうSpring JDBCでいいやって気になってきた。— かっぱ大王 (@kuwalab) May 5, 2014という気分になってきたので、紹介させてもらいます。Spring Frameworkを使っていてちょっとDBアクセスしたいという時…

Spring MVC 3.2のJSONのテスト

以前、Spring MVC 3.2のSpring MVC Testを触ったでSpring MVC 3.2から導入されたSpring MVCのテストを紹介しましたが、今回はJSONのテストについて紹介します。今回のアプリケーションもGitHubに上げています。いろいろなSpringのサンプルをまとめています。…

Mirageの例外をSpringのDataAccessExceptionにする

2WaySQLが使えるシンプルなデータベースアクセスライブラリーのMirageとSpring Frameworkの組み合わせで、Mirageが吐く例外をSpringのDataAccessExceptionに変換する方法です。Mirageプロジェクトは以下のページを参照して下さい。 http://amateras.sourcefo…

BigDecimalの検証

BigDecimalの挙動に自身がなかったので、最低限を書いた。 gist9032227

Java EE 6のweb.xml、いつも使うJSPのひな形

いつもいつも同じものを使うのでgistに置いた。https://gist.github.com/kuwalab/8802963 gist8802963

Spring MVC 3.2によるJSONのValidation

Spring 4.0が出ていますが、3.2の話題です。Spring MVC 3.2から@RequestBodyに対しても@Validが使え、JSONオブジェクトに対してvalidationをかけることができます。 ドキュメントは 4.11参照。具体的な手順です。今回は、以下のようなJSONを例に取ります。 {…

MirageでINパラメータを指定できるか確認

2WaySQLが使えるシンプルなデータベースアクセスライブラリーのMirageでINパラメータが使えるか確認してみました。Mirageプロジェクトは以下のページを参照して下さい。 http://amateras.sourceforge.jp/site/mirage/welcome.htmlもともと2WaySQLの部分はS2D…

Java EE 7のEL 3.0を少しだけ試してみた

Java EE 7の中ではバッチと、EL 3.0に期待していました。 実装が出たら試そうと思っていて、Eclipse 4.3というより、GlassFish 4.0が出たのでEL 3.0を少しだけ使ってみました。最初に確認したのは、web.xmlで、このバージョンからはとうとうsunがなくなりま…

Spring MVCのformタグを簡単にまとめました

Spring MVCの勉強をしていて、Springカスタムタグの日本語情報が少なかったので簡単にまとめまてみました。今回はformタグです。Springのバージョンは3.1.2を基準にしています。3.1.*系であれば多分動きますが、違う場合には注意が必要です。記事での説明は…

ServletとjQueryによる非同期ファイルアップロード

最近色々なところで見かける、ファイルをアップロードする際にプログレスバーを表示する方法を色々調べてみました。 以前調べていた時には、インラインフレームへのサブミットとCommons FileUploadを組み合わせて行う方法しか見つからなかったのですが、今は…

Java EE 6のweb.xmlの書き方

ほとんど自分用メモですが、Java EE 6のweb.xmlの書き方というか、XMLスキーマの定義です。 jsp-configはいつもだいたい同じようなものを書くのでそれもテンプレで。

Servlet 3.0とHTML5で複数ファイルのアップロード

最初に HTML5からinput type="file"の属性にmultipleが追加され、ファイルを複数選択することができるようになっています。今回はそれとServlet 3.0を利用して複数ファイルのアップロードを実装します。まず、ベースとなるServlet 3.0によるファイルのアップ…

Tomcat 7のParallel deploymentを試してみた。

@ITの技術者が知っておきたいTomcat 7の新機能20連発で、Tomcat 7の新機能としてWebアプリのバージョン管理「Parallel deployment」が取り上げられていました。これがうまく動くようだと場合によっては運用面で非常に楽になるため、簡単に検証してみました。…

ドラッグ&ドロップによるファイルのアップロード

Tomcat 7.0の最新安定版もリリースされたことですので、標準でサポートされたファイルアップロードを試してみました。 Servlet 3.0 File Upload 機能 - 寺田 佳央 - Yoshio Terada http://yoshio3.com/2010/03/11/servlet-3-0-file-upload-%E6%A9%9F%E8%83%B…

半角カナを全角カナにする。

Java6からjava.text.Normalizerで半カナ→全カナとか変換できるのか… http://twitter.com/#!/pomu0325/status/18504124920242176 と聞いて。サンプルを書いてみました。 package sample; import java.text.Normalizer; import java.text.Normalizer.Form; pub…

ArrayListとLinkedListの比較

「LinkedListが有効な場合があまりないんだが、どんな場合がいいんだ。まともにベンチをとるとほとんどの場合で圧倒的にArrayListが速いんだが。」とつぶやいたところ、FIFOが速いという答えを頂いたので試してみました。 package sample; import java.util.…