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

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

新規登録して質問してみよう
ただいま回答率
85.46%
Spring MVC

Spring MVCとは、Javaを用いてWebアプリケーションを開発できるフレームワーク。アーキテクチャにMVCを採用しており、画面遷移と入出力パラメータの受け渡しの基本的な機能の他、ユーザーの送信したパラメータに対する入力チェックなどさまざまな機能を持ちます。

Null

Nullとは、プログラミング言語やデータベースにおけるデータ表現の一種です。コンテキストによって"空"もしくは"長さ0の文字列"、”未知・不明”を意味します。

Java

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

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

Spring Boot

Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。

Q&A

解決済

1回答

3406閲覧

Java 配列に格納されている文字列のNullもしくは空白判定

Yopipi

総合スコア2

Spring MVC

Spring MVCとは、Javaを用いてWebアプリケーションを開発できるフレームワーク。アーキテクチャにMVCを採用しており、画面遷移と入出力パラメータの受け渡しの基本的な機能の他、ユーザーの送信したパラメータに対する入力チェックなどさまざまな機能を持ちます。

Null

Nullとは、プログラミング言語やデータベースにおけるデータ表現の一種です。コンテキストによって"空"もしくは"長さ0の文字列"、”未知・不明”を意味します。

Java

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

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

Spring Boot

Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。

0グッド

0クリップ

投稿2021/08/26 00:55

研修を始めて数日しかっていません。初歩的な質問でしたら申し訳ないです。

現在、プロジェクト型研修で画面の機能追加作業をしています。
日報・週報を提出する画面で必須項目が入力されているかの未入力チェック、
未入力の場合は「haserror」を利用してエラー文を出して入力画面に遷移
必須項目が入力されている場合は情報の登録のような処理を追記したいです。

ただ、文字列が格納されているのが配列なのでvalidationのNotBlankは使用できないらしく、
Java側でNull、空文字判定するメソッドを書くように研修担当者からアドバイスをいただきました。
なのでその方向で進めています。

また環境はSpring Boot Suiteを使用していて、@Controllerと@Serviceがあります。
文字列判定メソッドは@Serviceに記載すると思うんですが、「haserror」を用いて入力画面に
戻したいので、「haserror」の処理は@Controllerに記載した方がよいのでしょうか。

どのように処理書いていいのかイメージがわかなくて、手が止まってしまっている状況です。
ご教授お願いします。

※他にも関連しているコードはあるのですが書き加える部分だけ抜粋しています。
気になる部分があれば言ってください。

HTML

1<form th:method="post" th:action="@{/report/complete}" 2 class="form-horizontal" th:object="${dailyReportSubmitForm}"> 3 <div class="well bs-component" 4 th:if="*{intelligibilityFlg} == 1"> 5 <fieldset> 6 7 ~省略~ 8 9 <!-- 入力フォーム --> 10 <textarea class="form-control" rows="3" 11 th:id="|content_${stat.index}|" 12 th:name="|content[${stat.index}]|" th:errorclass="errorInput" >[[*{content[__${stat.index}__]}]]</textarea> 13 </div> 14 </div> 15 </fieldset> 16 </div> 17 18          ~省略~ 19 20 </form> 21

dailyReportSubmitForm

1package jp.co.sss.lms.form; 2 3public class DailyReportSubmitForm { 4 5~省略~ 6 private String[] content; 7 8 9~省略~

ReportController

1package jp.co.sss.lms.controller; 2 3~省略~ 4 5@Controller 6@RequestMapping("/report") 7public class ReportController { 8 9 @Autowired 10 private ReportService reportService; 11 12/** 13 * レポート提出 14 * 15 * @param dailyReportSubmitForm 16 * @param model 17 * @return セクション詳細画面 18 * @throws ParseException 19 */ 20 @RequestMapping(path = "/complete", method = RequestMethod.POST) 21 public String complete(@ModelAttribute DailyReportSubmitForm dailyReportSubmitForm, BindingResult result, 22 Model model) throws ParseException { 23 24 reportService.submit(dailyReportSubmitForm); 25 26 return "redirect:/section/detail?sectionId=" + dailyReportSubmitForm.getSectionId(); 27 } 28

ReportService

1package jp.co.sss.lms.service; 2 3 4~省略~ 5 /** 6 * レポート登録処理 7 */ 8 public void submit(DailyReportSubmitForm form) throws ParseException { 9 10 TDailyReportSubmit tDailyReportSubmit = new TDailyReportSubmit(); 11 12 tDailyReportSubmit.setDailyReportId(Integer.parseInt(form.getDailyReportId())); 13 SimpleDateFormat sdf = new SimpleDateFormat("yyyy/M/d"); 14 tDailyReportSubmit.setDate(new Timestamp(sdf.parse(form.getDate()).getTime())); 15 Integer lmsUserId = null; 16 if (loginUserUtil.isStudent()) { 17 lmsUserId = loginUserDto.getLmsUserId(); 18 } else { 19 lmsUserId = Integer.parseInt(form.getLmsUserId()); 20 } 21 Timestamp timestamp = new Timestamp(System.currentTimeMillis()); 22 tDailyReportSubmit.setLmsUserId(lmsUserId); 23 tDailyReportSubmit.setAccountId(loginUserDto.getAccountId()); 24 tDailyReportSubmit.setDeleteFlg(Constants.DB_FLG_FALSE); 25 tDailyReportSubmit.setLastModifiedUser(loginUserDto.getLmsUserId()); 26 tDailyReportSubmit.setLastModifiedDate(timestamp); 27 28 if (form.getDailyReportSubmitId() == null || form.getDailyReportSubmitId().equals("")) { 29 tDailyReportSubmit.setFirstCreateUser(loginUserDto.getLmsUserId()); 30 tDailyReportSubmit.setFirstCreateDate(timestamp); 31 tDailyReportSubmitMapper.insert(tDailyReportSubmit); 32 } else { 33 tDailyReportSubmit.setDailyReportSubmitId(Integer.parseInt(form.getDailyReportSubmitId())); 34 tDailyReportSubmitMapper.update(tDailyReportSubmit); 35 36 // レポート詳細の削除 37 Integer countSubmitDetail = tDailyReportSubmitDetailMapper 38 .getCountByDailyReportSubmitId(tDailyReportSubmit.getDailyReportSubmitId()); 39 if (countSubmitDetail > 0) { 40 tDailyReportSubmitDetailMapper.delete(tDailyReportSubmit.getDailyReportSubmitId()); 41 } 42 // 理解度の削除 43 Integer countIntelligibility = tIntelligibilityMapper 44 .getCountByDailyReportSubmitId(tDailyReportSubmit.getDailyReportSubmitId()); 45 if (countIntelligibility > 0) { 46 tIntelligibilityMapper.delete(tDailyReportSubmit.getDailyReportSubmitId()); 47 } 48 } 49 50 // レポート詳細登録 51 for (int i = 0; i < form.getContent().length; i++) { 52 TDailyReportSubmitDetail tDailyReportSubmitDetail = new TDailyReportSubmitDetail(); 53 tDailyReportSubmitDetail.setDailyReportSubmitId(tDailyReportSubmit.getDailyReportSubmitId()); 54 tDailyReportSubmitDetail.setFieldNum(i + 1); 55 tDailyReportSubmitDetail.setContent(form.getContent()[i]); 56 tDailyReportSubmitDetail.setAccountId(tDailyReportSubmit.getAccountId()); 57 tDailyReportSubmitDetail.setDeleteFlg(Constants.DB_FLG_FALSE); 58 tDailyReportSubmitDetail.setFirstCreateUser(loginUserDto.getLmsUserId()); 59 tDailyReportSubmitDetail.setFirstCreateDate(timestamp); 60 tDailyReportSubmitDetail.setLastModifiedUser(loginUserDto.getLmsUserId()); 61 tDailyReportSubmitDetail.setLastModifiedDate(timestamp); 62 tDailyReportSubmitDetailMapper.insert(tDailyReportSubmitDetail); 63 } 64 65 // 理解度登録 66 if (form.getIntFieldName() != null) { 67 for (int j = 0; j < form.getIntFieldName().length; j++) { 68 TIntelligibility tIntelligibility = new TIntelligibility(); 69 tIntelligibility.setDailyReportSubmitId(tDailyReportSubmit.getDailyReportSubmitId()); 70 tIntelligibility.setFieldNum(j + 1); 71 tIntelligibility.setFieldName(form.getIntFieldName()[j]); 72 tIntelligibility.setFieldValue(StringUtils.isBlank(form.getIntFieldValue()[j]) ? null 73 : Short.parseShort(form.getIntFieldValue()[j])); 74 tIntelligibility.setAccountId(tDailyReportSubmit.getAccountId()); 75 tIntelligibility.setDeleteFlg(Constants.DB_FLG_FALSE); 76 tIntelligibility.setFirstCreateUser(loginUserDto.getLmsUserId()); 77 tIntelligibility.setFirstCreateDate(timestamp); 78 tIntelligibility.setLastModifiedUser(loginUserDto.getLmsUserId()); 79 tIntelligibility.setLastModifiedDate(timestamp); 80 tIntelligibilityMapper.insert(tIntelligibility); 81 } 82 } 83 } 84 85 /** 86 * Null、空文字判定 87 * 88 * 89 * 90 */ 91 public BindingResult inputCheck(@Validated@ModelAttribute DailyReportSubmitForm dailyReportSubmitForm, 92 BindingResult result, Model model) { 93 94 String[] inputCheck = {}; 95 inputCheck = dailyReportSubmitForm.getContent(); 96 if(inputCheck == null) { 97 98 } 99 return result; 100 }

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

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

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

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

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

Zuishin

2021/08/26 01:05

まず String にどういうメソッドがあるかを調べてみてください。
m.ts10806

2021/08/26 01:21

>プロジェクト型研修で 聞くべきは講師や先輩方では。 そのぶんでお金もらってるわけですから。
guest

回答1

0

ベストアンサー

投稿2021/08/26 01:18

Luice

総合スコア771

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問