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

コンピュータクワガタ

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

JSPとELを見直そう No. 8 ELでLambdaを有効に使いたい2

今回は、forEachの対象をLambdaで絞り込んでみます。まずServletで書籍のリストを準備します。 package com.example; import java.io.IOException; import java.util.ArrayList; import java.util.List; import javax.servlet.ServletException; import java…

JSPとELを見直そう No. 7 ELでLambdaを有効に使いたい1

EL 3.0(Java EE 7)から、ELの中でLambda式が使えるようになりました。使いどころがなかなか難しい感じがしていますが、なんとか使えないか考えてみました。 <%@page contentType="text/html; charset=utf-8" %><%-- --%> <html lang="ja"> <head> <meta charset="utf-8"> <title>JSP</title> </head> <body> <c:set var="value" value="1" /> ${(v -> v == 1 ? '1で</c:set></body></html>…

JSPとELを見直そう No. 6 Enumをc:ifで使用する

Java EE 5からELでEnumの比較ができるようになっています。仕様を読んでいて今日知りました。まず、適当なEnum型を作ります。 package com.example; public enum Season { SPRING, SUMMER, AUTUMN, WINTER } 次に、Servletを作成します。requestスコープにWI…

JSPとELを見直そう No. 5 jsp:body

前回にひき続いて、最近の仕様ではないですが、カスタムタグを使用する際に知っておくと便利な機能があります。カスタムタグのボディ部もjsp:attributeのように別のタグとして指定することができます。 <%@page contentType="text/html; charset=utf-8" %><%…

JSPとELを見直そう No. 4 jsp:attribute

最近の仕様ではないですが、カスタムタグを使用する際に知っておくと便利な機能があります。カスタムタグの属性値に他のカスタムタグの結果を渡したり、複雑な内容を渡したい場合にアクションタグを使うとスマートに実装できます。 <%@page contentType="tex…

JSPとELを見直そう No. 3 ELで任意のメソッドの呼び出し

Java EE 6からELで任意のメソッドが呼び出せるようになりました。それまではgetterを使えば擬似的にメソッド呼び出しのようなことはできましたが、引数も渡すことができない上、本来の使い道ではありませんでした。Java EE 6では引数付きも含めてELからメソ…

JSPとELを見直そう No. 2 trimDirectiveWhitespaces

Java EE 5から、trimDirectiveWhitespacesがpageディレクティブで設定できるようになりました。これをtrueに設定することで、ディレクティブを宣言した行が空行として出力されるのを防ぐことができます。具体的に見ていきます。次のようなJSPを用意します。…

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…

ICaReader 1.2.3リリース

ICaReader 1.2.3リリースしました。Android 5.0対応のみです。https://play.google.com/store/apps/details?id=net.kuwalab.android.icareader主な変更は、以下のとおりです。変更点は、GitHubのコミットログ(適当)を見てください。https://github.com/kuw…

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. 004 URLの一部をパラメータとして受け取る(複数パラメータ)

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

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

リクエストされるURLの一部、例えば/hoge/fooの場合fooの値をパラメータとして受け取る場合には、@PathVariableアノテーションを使って受け取ることができます。 @RequestMapping(value = "/pathVar/{var}", method = RequestMethod.GET) public String path…

Arduinoが来た

Arduinoが来たのでLチカをやってみた。最初のLチカ - YouTubeだれも欲しがらないコード const int LED = 13; void setup() { pinMode(LED, OUTPUT); } void loop() { digitalWrite(LED, HIGH); delay(200); digitalWrite(LED, LOW); delay(200); digitalWrit…

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

WebComponentsでデバイスピクセル比を表示するカスタム要素を作った

Chrome 36でWeb ComponentsのHTML Importsが使えるようになり、Web Componentsのすべての要素が普通に使えるようになりました。そこで、Web Componentsのすべての要素(HTML Imports、Template、Shadow DOM、Cuntom Elements)を使ってデバイスピクセル比を…

Springの記事のまとめ

ブログの中で書いたSpringの記事のまとめです。 Spring MVCでできること(Spring 4.1バージョン) 初期設定 Spring MVC 4.1 No. 001 Hello world - コンピュータクワガタ リクエストパラメータを受け取る Spring MVC 4.1 No. 002 GETパラメータを受け取る - …

Androidの昔書いた記事のまとめ

以下3年以上前の記事です。注意してください。 Androidアプリ入門 Androidアプリ入門 No.01 Activityの操作 Androidアプリ入門 No.02 色の定義 Androidアプリ入門 No.03 フォント Androidアプリ入門 No.04 サイズ Androidアプリ入門 No.05 スタイル Android…

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…

WebComponentsの使用可否判定画面

Chrome 36でHTML Importsが標準で使えるようになって、ChromeではWebComponentsがひと通り使えるようになりました。しかし、他のブラウザでもある程度使えるようになってこないとなかなか実践で使うわけには行きません。毎回確認するのが面倒なので、WebComp…

AndroidのSQLiteのDBを実機からPCにコピーするときに少しハマった

AndroidのSQLiteのDBのデータを実機からPCにコピーする方法として、以下の様なコマンドがよく紹介されています。 adb -d shell 'run-as パッケージ名 cat databases/db' > ~/temp/db この方法でデータは持ってこれるのですが、SQLiteで確認すると「.schema」…

ICaReader 1.2.2リリース

ICaReader 1.2.2リリースしました。今回は、ほとんど内部的な修正です。 一部ガイドラインに従ったデザインにしたため、少しだけデザインが変わっています。https://play.google.com/store/apps/details?id=net.kuwalab.android.icareader主な変更は、以下の…

Spring JDBCの紹介 No. 1

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

Nexus 7(2013)で妖怪ウォッチを見るためにしたこと

妖怪ウォッチが大人気みたいですが、田舎ではやっていません。幸いGyaoで毎週無料で放送していますので、それを見ています。ただ、子供が見るものなのでPCやタブレットではなくてテレビで見せてあげたいものです。Nexus 7(2013)はSlimPortを使うことでHDMI…

ドラクエ4の取り逃し防止プレイ日記5章 終わりまで

5章に入ると正直気をつけるところはほとんどありません。移民の町を発展させると元に戻せないため、発展前にアイテムをきちんと取るというくらいです。今回は各キャラクターの最強防具を考えてみます。守備力ではなく、耐性を重点的に見ていきます。 耐性は …

ドラクエ4の取り逃し防止プレイ日記5章 ライアンまで

トルネコが入ってからは結構大変です。トルネコが入ったら、適当に復路の中身のものを売れば数十万Gが手に入ると思います。同時に船もてにはいりますので、RTAっぽく以下の地域をブクマしてかつ、リバーサイドやロザリーヒルで装備を買うと楽ができると思い…

ドラクエ4の取り逃し防止プレイ日記5章 トルネコまで

5章です。5章のトルネコが入るまでです。特段注意点はありません。3章で取っていない場合には、レイクナバ北の洞窟と女神像の洞窟の宝箱をとっている間に勇者のレベルもそれなりになっているでしょう。女神像の洞窟でメタルスライム狩りをしてもいいと思いま…

Spring MVC 3.2のJSONのテスト

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

ドラクエ4の取り逃し防止プレイ日記4章

4章です。4章もかなり注意が必要です。せいじゃくのたまは5章に持ち越せないので、4章ではとりません。 バルザックがベホマを使うので非常に厄介ですが、レベルを上げてメラミをかませばどうとでもなります。あとは、いしにんぎょうとつかいまが4章にしかで…

ドラクエ4の取り逃し防止プレイ日記3章

3章です。3章は注意点だらけです。てつのきんことぎんのめがみぞうは貴重なアイテムです。3章でとってはいけません。 もっというと、3章のエリアは5章の最序盤に訪れるので、できるだけ宝箱は開けないようにしたほうが5章が楽です。レイクナバ北の洞窟と女神…

ドラクエ4の取り逃し防止プレイ日記2章

2章です。2章も注意点が特にありません。 あえてあげるのであれば、カメレオンマンは最後に倒しましょうというくらいでしょうか。プレイはこれからなのでなにかあれば追記します。追記ルーラとリレミトの消費MPが1になっていました。てつのつめは貴重品でし…

広告