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

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

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

if文とは様々なプログラミング言語で使用される制御構文の一種であり、条件によって処理の流れを制御します。

Java

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

Q&A

解決済

3回答

1902閲覧

入力値が1000未満の場合エラー

megu0209

総合スコア13

if

if文とは様々なプログラミング言語で使用される制御構文の一種であり、条件によって処理の流れを制御します。

Java

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

0グッド

0クリップ

投稿2016/11/09 08:11

Java言語でApache Clickを使用し、画面の作成を行っております。

画面の一つに金額を設定するテキストボックスがあるのですが、1000未満の数字を記述した場合は設定時にエラーが出る処理を実装したいと考えております。

/** * 設定ボタン押下処理. * @return true */ public boolean onSubmitRegist() { // アプリログ出力 log.info(String.format("ボタン押下: sessionId=%s, timeout=%s", getContext().getSession().getId(), getContext().getSession().getMaxInactiveInterval())); log.debug("form.isValid() = " + form.isValid()); // 入力チェック if (form.isValid()) { String text = inTextCode.getValue(); if (text < 1000) { inTextCode.setError("利用限度額は1000円以上を設定してください"); } return false; } return true; }

このような形で記載したのですが、int型で未定義のためでしょうか、if(text,1000)の箇所のtextでソースエラーが出てしまいます。
String text = inTextCode.getValue();を修正し、int型で記述を行う必要があるのでしょうか。
どなたかご教授のほど、よろしくお願いいたします。

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

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

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

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

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

guest

回答3

0

ベストアンサー

String text = inTextCode.getValue(); ↓ Integer intText = Integer.parseInt(inTextCode.getValue());

ではだめですか?
※数値以外を入力された場合、エラーになるので、入力された文字列が数値か事前に判断する必要があります。

投稿2016/11/09 08:19

aki178

総合スコア164

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

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

megu0209

2016/11/09 09:01

ご回答ありがとうございます。 ソースエラーは消えたのですが、ボタンを押下した際の処理が修正前と変わり、システムエラーとなってしまいました。 これはString型でgetvalue()メソッドを使用できていないことが原因でしょうか。
aki178

2016/11/09 09:13

システムエラーはどのようなエラーになっているのでしょうか。 (inTextCode.getValue()のリターン値が数値じゃないような気がしますが。。。)
megu0209

2016/11/09 09:26

再度確認しましたところ、エラーが出ず処理を実行することができました! 先ほどとはどこか違っていたようです、お手数をおかけしてしまい申し訳ございません。 ありがとうございます。
guest

0

必須チェックなどが、form.isValid()で通っているのであれば、
inTextCode.getValue()には必ず値があるので、
if (Integer.valueOf( inTextCode.getValue()) < 1000) {
で、良いのではないでしょうか。

また、当該フレームワークのバリデータがどのようなものか、
わかりかねるので、該当しない指摘かもしれませんが、
上限・下限程度の判定であれば、必須チェック等と一緒にできる仕組みが
フレームワークにありませんか?

投稿2016/11/09 08:18

akio221

総合スコア716

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

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

megu0209

2016/11/09 09:07

ご回答ありがとうございます。 必須チェックはつけない仕様なのですが、その場合はこちらの処理では適当ではないのでしょうか。 ソースエラーが消えずなかなか上手くいきません。。 フレームワークに上限下限のクラスが見当たらず、直接処理の記述を行っていたのですが、再度確認いたします。 ありがとうございます。
guest

0

Javaは型が決められているので、intでないと駄目です。

intにキャストしてから比較してください。
その場合、文字列が数字で構成されていないと例外が発生するので、そのチェックを追加することをお勧めします。

投稿2016/11/09 08:14

編集2016/11/09 08:15
himakuma

総合スコア952

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

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

megu0209

2016/11/09 09:08

ご回答ありがとうございまず。 やはりint型でないと駄目なのですね。 文字列のチェックも含めもう一度確認いたします。ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問