「データ」に何が格納されているかはわかりませんが、文字列が読み込まれているとしましょう。
String data[] = new String[] { "Array 1", "Array 2", "Array 3" };
JSP ページは、「データ」内のすべての文字列を出力するために次のようになります。
<ul>
<% Iterator<String> iterator = request.getAttribute("data");
while (iterator.hasNext()) {
%>
<li> <a href=""><%=iterator.next()%></a> </li>
<%}%>
</ul>
生成された HTML ページは次のようになります。
<ul>
<li><a href="">Array 1</a></li>
<li><a href="">Array 2</a></li>
<li><a href="">Array 3</a></li>
</ul>
または、JSTL を使用して「データ」を反復処理することもできます。HTML ヘッダーに次の宣言を追加します。
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
そして、「データ」を反復処理します。
<% String data[] = request.getAttribute("data"); %>
<ul>
<c:forEach var="d" items="${data}">
<li><a href=""><c:out value="${d}" /></a></li>
</c:forEach>
</ul>
ドロップダウン メニューについては、無料の THIS TUTORIAL WITH A SIMPLE DROPDOWN MENUをご覧ください。より高度なドロップダウン メニューを探している場合は、THIS TUTORIAL WITH A ADVANCED DROPDOWN MENUを参照してください。ただし、この高度なドロップダウン メニューには費用がかかることに注意してください。
サブメニュー項目をどこから取得しているのかわかりませんが、<a>
これらのチュートリアルを使用している場合は、タグ内にサブメニュー値を入力してサブメニュー項目を作成する必要があると言えます。このような:
<li><a href="#"
onmouseover="mopen('m1')"
onmouseout="mclosetime()">Array 1</a>
<div id="m1"
onmouseover="mcancelclosetime()"
onmouseout="mclosetime()">
<a href="#">Array 1.1</a>
<a href="#">Array 1.2</a>
<a href="#">Array 1.3</a>
</div>
</li>
<li><a href="#"
onmouseover="mopen('m2')"
onmouseout="mclosetime()">Array 2</a>
<div id="m2"
onmouseover="mcancelclosetime()"
onmouseout="mclosetime()">
<a href="#">Array 2.1</a>
<a href="#">Array 2.2</a>
<a href="#">Array 2.3</a>
</div>
</li>
チュートリアルの手順に従うだけで問題ありません