カテゴリのリストが必要な場合は、結果をループしてList
に追加する必要があります。所有しているカテゴリの数を事前に知る必要がないので、リストを作成します。
rs=stat.executeQuery("select * from category ");
List<String> categories = new ArrayList<>();
while (rs.next()) {
categories.add(rs.getString(c_nm));
}
あなたが本当にする必要がある場合、あなたはあなたのリストを配列に、変換することができます:
s1 = categories.toArray(new String[0]);
あなたは、私が長さ0の配列を渡す理由として混乱している場合は、さらに調査してください。What to pass to the Arrays instance method toArray(T[] a)
method?を。
他の物事がために注意する:
- Javaは大文字と小文字が区別され、
S1
はs1
、あなたの%!
セクションを参照してくださいと同じではありません。
- ない
s1[]=
なく、ただ単にs1=
- あなたは1を作成するときに、配列のサイズを指定する必要がHow to initialize an array in Java?
- を参照してください...それは私があなたの<%中の文と信じ
new String []
- 対
= new String[10]
です! ...%>はまだセミコロン(;
)で終了する必要があります。これらすべての修正ととにかく
、それはおそらく、このようなものにする必要があります。
<%! String [] s1 = new String[0]; %>
私たちは、代わりにヌルが割り当てられている可能性がありますが、コードの残りの部分は大丈夫だろうかどうかはわかりません。これは今のところ最も慎重なことに思えました。
今も、あなたがList
とArrayList
を使用しているので、あなたはそれのためにimport sectionsが必要になります:
<%@ page import="java.util.List" %>
<%@ page import="java.util.ArrayList" %>
を次にあなたが実際にそれらのカテゴリで何かをしたい場合は、これに似た何かを書きたいと思います:私も、私はcategories
01を使用代わりに、(あなたはネイティブ配列と呼ばれるものは何でも)s1
またはS1
を使用しなかった
<% for (String category:categories) { %>
<p><%=category%></p>
<% } %>
注意を直接(したがって、実際に変換する必要はありません)。
私があなたに提供した解決策については多くのことが言えますが、私はあなたの質問に直接答えるのが最も簡単ですが、
問題点を教えてください。このコードはコンパイルされますか? – SMA
ちょうどそれを正しく理解する。あなたは "category"という名前のデータベースを持っていて、その中に "category1"、 "category2"という値を持つ "c_nm"という名前の列を持つ "category"という名前のテーブルがありますか? – totoro
配列のすべてのカテゴリが取得できない場合は、配列の宣言に何か問題があります – Rizwan