【Javaエラー】リストを取得するときに「@123abc」のようなエラーが出る

プログラミング

事象

javaとjsp/サーブレットなどを使ってWebアプリを作成中に起きたエラー。

リストには値が正常に入っているが、取り出すときに画像のように表示が「@123abc」のようにおかしくなる。

<table class="pay-list">
			<tr>
				<th>曜日</th><th>献立</th>
			</tr>
			<tr>
				<td>月</td><td><%=list.get(0) %></td>
			</tr>
			<tr>
				<td>火</td><td><%=list.get(1) %></td>
			</tr>
			<tr>
				<td>水</td><td><%=list.get(2) %></td>
			</tr>
			<tr>	
				<td>木</td><td><%=list.get(3) %></td>
			</tr>
			<tr>
				<td>金</td><td><%=list.get(4) %></td>
			</tr>
			<tr>	
				<td>土</td><td><%=list.get(5) %></td>
			</tr>
			<tr>	
				<td>日</td><td><%=list.get(6) %></td>
			</tr>
</table>

以下のようにリストが「@(数字や文字列)」のようになる。

原因

取得したいリストの中身は「id」「menuName」「menuCategory」という3つの値をそれぞれ持っている。

ここではmenuNameの値だけを取得したかったのだが、それを指定していなかったためうまく表示されなかったようだ。

例)list(0)は 「0(id), null(menuCategory), 鯖の味噌煮(menuName)」を持っている。
list.get(0)だけではそれぞれの値は取れない。

解決策

list.get(~)の後にMenuクラスのgetterである「.getManuName」を追加。

	<table class="pay-list">
			<tr>
				<th>曜日</th><th>献立</th>
			</tr>
			<tr>
				<td>月  </td><td><%=list.get(0).getMenuName() %></td>
			</tr>
			<tr>
				<td>火</td><td><%=list.get(1).getMenuName() %></td>
			</tr>
			<tr>
				<td>水</td><td><%=list.get(2).getMenuName() %></td>
			</tr>
			<tr>	
				<td>木</td><td><%=list.get(3).getMenuName() %></td>
			</tr>
			<tr>
				<td>金</td><td><%=list.get(4).getMenuName() %></td>
			</tr>
			<tr>	
				<td>土</td><td><%=list.get(5).getMenuName() %></td>
			</tr>
			<tr>	
				<td>日</td><td><%=list.get(6).getMenuName() %></td>
			</tr>
	</table>

結果が想定通りに表示されました。

コメント

タイトルとURLをコピーしました