コンピュータクワガタ

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

Java

JSPとELを見直そう No. 1 ひな形

世間一般にはJSPは面倒だとか、動かさないとどういう表示になるのかわからないとかいろいろ言われていまして、確かにそのとおりなのですが、Java EE5、6、7と進化する中でJSPやELも進化しています。そこで、今回からネタが尽きるまでJSPとELの機能について紹…

JSPの記事のまとめ

ブログの中で書いたJSPの記事のまとめです。 JSPとELを見直そう No. 1 - コンピュータクワガタ JSPとELを見直そう No. 2 trimDirectiveWhitespaces - コンピュータクワガタ JSPとELを見直そう No. 3 - コンピュータクワガタ JSPとELを見直そう No. 4 jsp:att…

Spring MVC 4.0 No. 020 Validatorのエラーの際に入力値を再表示させる

前回のソースの内、フォームのJSPのみを変更して、フォームの値の再表示が可能です。<form:input>タグを使ってpathにエラーメッセージと同じようにモデル名.フィールド名を指定することで、リクエストから自動的に値が割り当てられます。 <%@page contentType="text/html</form:input>…

Spring MVC 4.0 No. 019 Validatorでロジックを介した検証

今回はBean Validationのの複数のフィールドを対象とした検証です。Bean Validationはその名前の通り、JavaBeansのテストの仕組みです。そのため、フィールドだけでなくgetterに対してテストをすることができます。(より詳しくは JSR 303 Bean Validationで…

Spring MVC 4.0 No. 018 ValidatorでNotBlankのチェック

今回はBean ValidationのNotBlankです。Bean Validationの標準ではなく、Hibernateの実装に含んでいるValidatorになります。これを使うと文字列の空文字のチェックができます。 @NotBlank private String name; @NotNull private Integer price; メッセージ…

Spring MVC 4.0 No. 017 Validatorで正規表現でのチェック

今回はBean Validationの正規表現です。正規表現なので、色々なパターンのチェックができますが、今回は「ISBN + 数字10桁」のチェックをします。 @NotNull @Pattern(regexp = "ISBN[0-9]{10}", message = "{0}はISBNを入力してください") private String na…

Spring MVC 4.0 No. 016 ValidatorでSizeのチェック

今回はBean ValidationのSizeです。Sizeは文字列の長さの検査や、Collectionの長さの検査ができます。今回は文字列の長さの例を見ていきます。 @NotNull @Size(min = 10, max = 10) private String name; @NotNull private Integer price; メッセージは以下…

Spring MVC 4.0 No. 015 ValidatorでDigitsのチェック

今回はBean ValidationのDigitsです。Digitsは数値の具体的な最小、最大値ではなく、整数部の最大桁数、小数部の最大桁数を指定します。桁数以内であれば、小さくても大丈夫です。 @NotNull private String name; @NotNull @Digits(integer = 3, fraction = …

Spring MVC 4.0 No. 014 ValidatorでMin、Maxのチェック

今回はBean ValidationのMin、Maxの2つです。MinとMaxはDecimalMax、DecimalMinと違い、整数のみのチェックとなります。またその数値自身を含むチェックのみが可能です。valueも数値で指定できるので、整数のチェックの場合はこちらのほうがいいかもしれませ…

Spring MVC 4.0 No. 013 ValidatorでDecimalのチェック

今回からしばらくBean Validationの標準のValidatorの説明をしていきます。最初はDecimalMax、DecimalMinの2つです。DecimalMaxとDecimalMinはその名の通り、数値の最大と最小をチェックします。また、inclusive属性をtrue/falseにすることで、値自体を含む…

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.…

Java EE 6

今まで断片的な情報しか拾ってなかったけど、割りといい感じの仕様だ。ちょっと使ってみるか? Java EE 6で復活するエンタープライズJavaの世界View more presentations from Takakiyo Tanaka.

WTP Integration

メモ。

Ajaxセキュリティ

いろいろな記事があったが、最初のIBMの記事が一番参考になりそう。 正規表現で JSON ストリングをチェックするあたりはなかなか。 http://www.ibm.com/developerworks/jp/xml/library/x-ajaxsecurity.htmlhttp://techtarget.itmedia.co.jp/tt/news/0704/03/…

ちょっと今日は読めないけど。

http://d.hatena.ne.jp/jyukutyo/20080805/1217925680 明日も読めなくはないか?明日のお昼休みとかに見る。

Tomcat 6.0をWindows上のサービスに登録

http://tomcat.apache.org/tomcat-6.0-doc/windows-service-howto.html

サービスで起動しているTomcatのメモリ量。

http://www.wingarc-support.com/faq/0000972.html だそうで。

いまさらアノテーションの理解

Seasar2関連のアノテーションのソースを読んでいるとよく出てくる、以下のような定義。 @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.METHOD)不勉強で、Seasar2の独自のものだと思ってました。(importとか見たらわかるんだけど、Eclipseは最近…

MavenとCVSを使ってみたい。

とりあえず、関連しそうなページを読んでみる。 そのものずばり、MavenとCVS http://muimi.com/j/apache/maven/site/ Mavenの解説。これを一通りいじってみよう。 http://www.techscore.com/tech/ApacheJakarta/Maven/index.html Maven http://wiki.fdiary.n…

Eclipse 3.3のスペルチェックを止める。

何でもかんでもスペルチェックで引っかかってくれるので止める。 http://www.okisoft.co.jp/esc/eclipse3/eclipse3-3.html#platform5

いつの間にかWTPでinclude-prelude属性が反映されてるなり

J2EE 1.4から、web.xmlで以下のようなinclude-prelude要素で指定したJSPを、指定のJSPにincludeできるようになりました。 <include-prelude>/common/common.jsp</include-prelude>普段WTPを使っていて(1.5系だったか、1.0系だったか)不満だったのは、include-preludeでたとえば、taglibを指定…

広告