質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

2回答

2563閲覧

int型で定義したものをformのtextに空欄で送信するとNumberFormatExceptionになる。

退会済みユーザー

退会済みユーザー

総合スコア0

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2019/12/29 08:50

編集2019/12/29 09:22

実現したいこと:数値(intで定義)を入れるtext欄で何も入力しなくてもエラーにならないようにしたい

イメージ説明
↑金額を空欄で送信するとエラーになる。

org.springframework.validation.BindException: org.springframework.validation.BeanPropertyBindingResult: 1 errors
Field error in object 'KakeiboForm' on field 'kingaku': rejected value []; codes [typeMismatch.KakeiboForm.kingaku,typeMismatch.kingaku,typeMismatch.int,typeMismatch]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [KakeiboForm.kingaku,kingaku]; arguments []; default message [kingaku]]; default message [Failed to convert property value of type 'java.lang.String' to required type 'int' for property 'kingaku'; nested exception is java.lang.NumberFormatException: For input string: "

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

対象のControllerのメソッド引数に、BindingResultを追加してください。BindingResultには宣言順序にルールがあり、入力項目の次の引数に指定します。

例:

java

1public ModelAndView check(ModelAndView mnv, @ModelAttribute("form") AgeForm form, BindingResult result) { 2 if (result.hasErrors()) { 3 FieldError fieldError = result.getFieldError(); 4 mnv.addObject(fieldError); 5 } else { 6 ...... 7 } 8}

投稿2019/12/29 14:19

A-pZ

総合スコア12011

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/12/30 02:19

いつもありがとうございます。 登録の際は金額の空欄はあり得ない想定なのでBindingResultを使用させていただきます。 部分一致の検索では金額が空欄でもOKを実現したいのですが、実行してみるとintにStringの""が入力されているNumberFormatExceptionと怒られるのですが、intが空欄でもStringとしてみなされないような実装は可能でしょうか。よろしくお願いいたします。
A-pZ

2019/12/30 14:42

実はBindingResultでは、特定のフィールドのみにエラーがあるかどうかも判定できます。 例えば部分一致の検索に入力されている場合は、BindingResultにエラーがあったとしても、具体的にはどの項目でエラーになっているかを判別するFieldError result.getFieldError(項目名) や、boolean result.hasFieldErrors(項目名) が用意されているので、とある条件のときはエラーと見なさない、と判断も可能です。
退会済みユーザー

退会済みユーザー

2020/01/01 12:30

すいません、とある条件のときはエラーとみなさないとありますが調べても出てこなく、書き方がわからないので具体例などはございませんでしょうか。
A-pZ

2020/01/01 13:07

> 調べても出てこなく 自分で作成するところです。
退会済みユーザー

退会済みユーザー

2020/01/01 13:52

エラーとして処理することしかわからないのですが、
退会済みユーザー

退会済みユーザー

2020/01/01 14:38

そもそも、未入力が発生する項目はプリミティブにすべきではありません。
guest

0

nullはなにか、も一度確認してみては?

型の違うものもってきても比較するのは無意味だし、できません

投稿2019/12/29 09:13

y_waiwai

総合スコア87774

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/01/01 14:36

Form バインディングの段階よ
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問