読者です 読者をやめる 読者になる 読者になる

コンピュータクワガタ

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

Spring MVC 4.1 No. 043 form:labelタグ

form:labelタグは、HTMLの<label>タグを生成します。その要素の内、単純にHTMLの属性に置き換えられるものは、以下の属性です。cssClassやcssStyleはそれぞれclass、style属性に置き換えられます。 属性 説明 cssClass HTML標準のclass属性 cssStyle HTML標準のsytl</label>…

Spring MVC 4.1 No. 042 form:optionsタグ

form:optionsタグは、HTMLの<option>タグを生成します。このタグは、form:selectタグの中に書く必要があります。その要素の内、単純にHTMLの属性に置き換えられるものは、以下の属性です。cssClassやcssStyleはそれぞれclass、style属性に置き換えられます。 属性 説</option>…

Spring MVC 4.1 No. 041 form:optionタグ

form:optionタグは、HTMLの<option>タグを生成します。このタグは、form:selectタグの中に書く必要があります。その要素の内、単純にHTMLの属性に置き換えられるものは、以下の属性です。cssClassやcssStyleはそれぞれclass、style属性に置き換えられます。 属性 説</option>…

Spring MVC 4.1 No. 040 form:selectタグ

form:selectタグは、HTMLの<select>タグとその子要素のoptionタグを生成します。その要素の内、単純にHTMLの属性に置き換えられるものは、以下の属性です。cssClassやcssStyleはそれぞれclass、style属性に置き換えられます。 属性 説明 accesskey HTML標準のaccessk</select>…

Spring MVC 4.0 No. 039 form:radiobuttonsタグ

form:radiobuttonsタグは、HTMLの複数の<input type="radio">タグを生成します。その要素の内、単純にHTMLの属性に置き換えられるものは、以下の属性です。cssClassやcssStyleはそれぞれclass、style属性に置き換えられます。 属性 説明 accesskey HTML標準のaccesskey属性 cssCl…

Spring MVC 4.1 No. 038 form:radiobuttonタグ

form:radiobuttonタグは、HTMLの<input type="radio">タグを生成します。その要素の内、単純にHTMLの属性に置き換えられるものは、以下の属性です。cssClassやcssStyleはそれぞれclass、style属性に置き換えられます。 属性 説明 accesskey HTML標準のaccesskey属性 cssClass HTM…

Spring MVC 4.1 No. 037 form:checkboxesタグ

form:checkboxesタグは、HTMLの<input type="checkbox">タグのまとまりを生成します。その要素の内、単純にHTMLの属性に置き換えられるものは、以下の属性です。cssClassやcssStyleはそれぞれclass、style属性に置き換えられます。 属性 説明 accesskey HTML標準のaccesskey属性 css…

Spring MVC 4.1 No. 036 form:checkboxタグ

form:checkboxタグは、HTMLの<input type="checkbox">タグを生成します。その要素の内、単純にHTMLの属性に置き換えられるものは、以下の属性です。cssClassやcssStyleはそれぞれclass、style属性に置き換えられます。 属性 説明 accesskey HTML標準のaccesskey属性 cssClass HTML標…

Spring MVC 4.1 No. 035 form:hiddenタグ

form:hiddenタグは、HTMLの<input type="hidden">タグを生成します。その要素の内、単純にHTMLの属性に置き換えられるものは、以下の属性です。 属性 説明 id HTML標準のid属性 lang HTML標準のlang属性 残りがSpring用の属性になります。 属性 説明 htmlEscape HTMLのエスケープ…

Spring MVC 4.1 No. 034 form:passwordタグ

form:passwordタグは、HTMLの<input type="password">タグを生成します。指定できる属性はshowPassword以外はform:inputと同じです。その要素の内、単純にHTMLの属性に置き換えられるものは、以下の属性です。cssClassやcssStyleはそれぞれclass、style属性に置き換えられます。 属…

Spring MVC 4.1 No. 033 form:inputタグ

form:inputタグは、HTMLの<input type="text">タグを生成します。その要素の内、単純にHTMLの属性に置き換えられるものは、以下の属性です。cssClassやcssStyleはそれぞれclass、style属性に置き換えられます。 属性 説明 accesskey HTML標準のaccesskey属性 alt HTML標準のalt…

Spring MVC 4.1 No. 032 CSVファイルのダウンロード4

ダウンロードの4つ目の方法はSpringらしい方法です。まず、spring-context.xmlにViewResolverの設定を追加します。処理する順番(order)を1にして最初に参照するようにします。 <bean id="xmlViewResolver" class="org.springframework.web.servlet.view.XmlViewResolver"> <property name="order" value="1" /> <property name="location" value="/WEB-INF/spring/views.xml" /> </bean>…

Spring MVC 4.1 No. 031 RedirectAttribute

Springではリダイレクト時にリダイレクト先で参照できるRedirectAttributeを使用できます。 package com.example.spring.controller.c031; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframe…

Spring MVC 4.0 No. 030 コンポーネントをSessionスコープから破棄する

SpringのSessionスコープに格納したコンポーネントのうち、コントローラーに関連したものだけをクリアすることができます。セッションに格納する仕組み自体は前回のものと同様です。まず、Sessionに置くコンポーネントを用意します。 package com.example.sp…

Spring MVC 4.0 No. 029 コンポーネントをSessionスコープにする

SpringのコンポーネントをデフォルトのシングルトンからSessionに変更して、リクエストをまたいでコンポーネントを利用することができます。まず、Sessionに置くコンポーネントを用意します。 package com.example.spring.controller.c029; import java.io.S…

Spring MVC 4.1 No. 028 セッションスコープにデータを格納

セッションにデータを格納する方法もリクエスト同様に複数あります。Servlet APIのHttpSessionを使用する方法、WebRequestを使用する方法などです。WebRequestはリクエストスコープと同様にデータを格納する際にスコープを指定します。今回は同一の画面に遷…

Spring MVC 4.1 No. 027 リクエストスコープにデータを格納

Springではいくつかの方法でリクエストスコープにデータを格納できます。ひとつは通常のサーブレットと同様にHttpServletRequestを使う方法。2つ目がWebRequestを使う方法。3つ目がModelを使う方法になります。 package com.example.spring.controller.c027;…

Spring MVC 4.1 No. 026 ファイルのアップロードの例外処理

ファイルアップロード時の例外(アップロードサイズが大きすぎる等)処理はやや煩雑です。また、ファイルアップロード時の上限ファイルサイズをきちんと決めておかないと、サーバーのリソースを食いつぶす原因にもなります。まず、アップロード時の上限サイ…

Spring MVC 4.1 No. 025 ファイルのアップロード

Java EE 6、Servlet 3.0から標準でファイルのアップロードができるようになりました。今回はServlet 3.0のファイルアップロードを行います。ファイルアップロードする場合には、web.xmlにアップロードの設定が必要です(もしくはServletのアノテーションです…

Spring MVC 4.1 No. 024 CSVファイルのダウンロード3

今回もCSVダウンロードについてです。今回はResponseBodyを返す形で実装します。ResponseEntityではデータと、ヘッダー、ステータスコードを返せます。日本語の文字化けをしないようにするために、HttpHeadersクラスのsetContentTypeを使わずに、addメソッド…

Spring MVC 4.1 No. 023 CSVファイルのダウンロード2

今回もCSVダウンロードについてです。今回はResponseEntityクラスを使用したダウンロードについてです。ResponseEntityではデータと、ヘッダー、ステータスコードを返せます。日本語の文字化けをしないようにするために、HttpHeadersクラスのsetContentType…

Spring MVC 4.1 No. 022 CSVファイルのダウンロード1

今回はCSVダウンロードです。ダウンロードにはいくつか方法があるのですが、今回はSpringにあまり依存しない方法を紹介します。具体的なソースは以下のなります。csvInitでアンカーの書かれた画面を開き、csvDownが実際のダウンロードになります。ダウンロー…

Spring MVC 4.1 No. 021 submitボタンによって分岐する

formの中にsubmitボタンが複数ある場合に、どのボタンが押されたかはリクエストに含まれるパラメータでわかります。具体的にはbutton1というname属性のボタンを押した時には、button1パラメータが送信されます。それを利用して、同じURLに対してパラメータの…

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

前回のソースを少し変更して、フォームの値の再表示をします。まずはControllerです。 package com.example.spring.controller.c020; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.…

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

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

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

今回はBean ValidationのNotBlankです。Bean Validationの標準ではなく、Hibernateの実装に含んでいるValidatorになります。これを使うと文字列の空文字のチェックができます。最初にこれまでと同様の、ControllerとJSPを作成します。ControllerとJSPは先の…

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

今回はBean Validationの正規表現です。正規表現なので、色々なパターンのチェックができますが、今回は「ISBN + 数字10桁」のチェックをします。最初にこれまでと同様の、ControllerとJSPを作成します。ContollerとJSPは先の例と同様のため、説明は省略しま…

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

今回はBean ValidationのSizeです。Sizeは文字列の長さの検査や、Collectionの長さの検査ができます。今回は文字列の長さの例を見ていきます。最初にこれまでと同様の、ControllerとJSPを作成します。ControllerとJSPは先の例と同様のため、説明は省略します…

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

今回はBean ValidationのDigitsです。Digitsは数値の具体的な最小、最大値ではなく、整数部の最大桁数、小数部の最大桁数を指定します。桁数以内であれば、小さくても大丈夫です。最初にControllerとJSPを作成します。これまでと同様になります。 package co…

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

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

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

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

Spring MVC 4.1 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.1 No. 011 受け取る型のチェック

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

Spring MVC 4.1 No. 010 ModelAttributeで受け取る

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

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

今回はSpringで用意されているHttpEntityクラスでリクエストを受け付けます。 package com.example.spring.controller.c009; import org.springframework.http.HttpEntity; import org.springframework.stereotype.Controller; import org.springframework.u…

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

RequestBodyのデータをReaderやInputStreamで受け取ることができます。今回はより簡単なReaderで受け取っています。読み取った1行目のデータをレスポンスに返しています。 package com.example.spring.controller.c008; import java.io.BufferedReader; impo…

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

今回はHttpServletRequestとSpringで用意されている、Reqeustのようなクラスです。WebRequestは色々便利に使えますが、今回はHttpServletRequestと同じ動きができるというところだけ確認します。 package com.example.spring.controller.c007; import javax.…

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

POSTリクエストのデータは、GETリクエストと同様に@RequestParamで受け取ることもできますが、リクエストボディの生データをそのまま受け取ることもできます。 package com.example.spring.controller.c006; import org.springframework.stereotype.Controll…

Spring MVC 4.1 No. 005 URLの一部をパラメータとして受け取る(複数パラメータ)

URLをパラメータとする場合、そのパラメータは1つでなくても構いません。複数のパラメータを受け取ることができますし、パラメータとパラメータの間にURLの一部が混ざっていても問題ありません。具体的なサンプルは以下のとおりです。 package com.example.s…

Spring MVC 4.1 No. 004 URLの一部をパラメータとして受け取る

リクエストされるURLの一部、例えば/hoge/fooというアクセスのfooの値をパラメータとして受け取る場合には、@PathVariableアノテーションを使って受け取ることができます。 package com.example.spring.controller.c004; import org.springframework.stereot…

Spring MVC 4.1 No. 003 GETパラメータを受け取る(Optional)

Spring MVC 4.1から@RequestParamのパラメータにOptionalが使用できるようになりました。Optionalを使用することで、事実上パラメータは必須ではなくなります。例えば、fooパラメータを設定した場合を例にします。Stringで受けた場合にはfooパラメータが、な…

Spring MVC 4.1 No. 002 GETパラメータを受け取る

通常のGETパラメータを受け取るには、@RequestParamアノテーションを使用します。 package com.example.spring.controller.c002; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.…

Spring MVC 4.1 No. 001 Hello world

最初のサンプルは、Spring MVCでHello worldを表示する最低限のプログラムです。これ以降の基本となる部分です。Spring MVCに必要なライブラリーは依存関係が複雑で大変なため、Mavenで導入するのが簡単です。Mavenのためのpom.xmlの必要なライブラリーの設…

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も数値で指定できるので、整数のチェックの場合はこちらのほうがいいかもしれませ…

広告