初心者のため、大変恐縮ですが、ぜひお力添えをお願いいたします。
前提・実現したいこと
配列の学習のため、多次元配列を使い九九表をWeb上に表示させたい。
Java側で九九の計算結果を取得し、ビュー側で受け取りWeb上に九九表を表示させたい。
発生している問題・エラーメッセージ
Springbootアプリケーションで表示させると、要素がすべて文字列になってしまいます。
デバッグで確認したところ、Java側で配列の値は確認できました。
ビュー側に値を渡したところ、どうやらHTML側も二次元配列に合わせないといけないとのことで、その先のコードの記述がわからずにいます。
該当のソースコード
Java
1import org.springframework.stereotype.Controller; 2import org.springframework.ui.Model; 3import org.springframework.web.bind.annotation.RequestMapping; 4import org.springframework.web.bind.annotation.RequestMethod; 5 6@Controller 7public class CountNumberWeb { 8 9 10 @RequestMapping(value = "/count", method = RequestMethod.GET) 11 12 public String kukuList(Model model) { 13 14 15 int[][] kuku = new int[9][9]; 16 17 for (int i = 1; i <= 9; i++) { 18 19 for (int j = 1; j <= 9; j++) { 20 21 kuku[i - 1][j - 1] = i * j; 22 } 23 } 24 model.addAttribute("kuku", kuku); 25 26 return "count"; 27 } 28} 29
HTML
1<!DOCTYPE html> 2<html xmlns="http://www.w3.org/1999/xhtml" 3 xmlns:th="http://www.thymeleaf.org"> 4<head> 5<meta charset="UTF-8"> 6 7<title>Count</title> 8</head> 9 10<style type="text/css"> 11th { 12 width: 100px; 13} 14 15table,tr,th,td { 16 border: 1px solid #bbb; text-align: center; 17} 18</style> 19 20<body> 21 <h1>九九表</h1> 22 23 <table> 24 <tr> 25 <!-- 表 見出し --> 26 <th>九九表</th> 27 <th th:each="i : ${#numbers.sequence(1, 9)}" th:value="${i}" 28 th:text="${i}"></th> 29 </tr> 30 31 <th:block th:each="left : ${#numbers.sequence(1, 9)}" th:value="${left}"> 32 33 <tr> 34 <!-- 縦の数字 --> 35 <td th:text="${left}"></td> 36 37 <th:block th:each="right : ${#numbers.sequence(1, 9)}" th:value="${right}"> 38 39 <!-- 表の中身 --> 40 <td th:text="${kuku}"></td> 41 </th:block> 42 </tr> 43 </table> 44 45</body> 46</html> 47
試したこと
多次元ではなく、通常の配列でも表示可能か試しました。
コードを書いてみましたがうまく動作せず、
1行につき9項目(1×1~1×9)の配列がさらに9行分(~9×9まで)の配列で囲っているという
考え方をしたのですが、自分にはコードに表すことができませんでした、、、
初心者のため文章に表すのも難しく、伝わりにくい部分も多々あるとは思いますが、
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー