dポイントプレゼントキャンペーン実施中!

StrutsのIterateタグを使おうとしているのですが、
jsp.error.unterminated.tagというエラーが出てしまい
ます。Iterateタグの使い方に問題があると思うのです
が、どのように対処すれば良いのかが分かりません。ご
存知の方、教えて頂けませんでしょうか。お願いしま
す。

<%@ page language="java"
import="java.util.Collection,
aloha.business.UserBO"
%>
<%@ taglib uri="/WEB-INF/tlds/struts-logic.tld" prefix="logic" %>
<%@ taglib uri="/WEB-INF/tlds/struts-bean.tld" prefix="bean" %>

<jsp:include page="header.jsp" flush="true" />

<%
UserBO UserBO = new UserBO();
Collection col = userBO.findAllUser();
%>
<table><tr>
<logic:iterate id="user", name="col", length="5">

</logic:iterate>

A 回答 (4件)

こんにちは、川西です。


さっきの回答ですが、間違っていました。
<logic:iterate id="user", name="col", length="5">
iterateタグにproperty属性というのがあるのですが、
それをつけなければいけないと思います。
property属性にはcolのなかにあるメンバ変数を
指定します。

この回答への補足

川西様、アドバイスありがとうございます。

>iterateタグにproperty属性というのがあるのですが、
それをつけなければいけないと思います。property属性
にはcolのなかにあるメンバ変数を指定します。

変数col自体がCollectionクラスなので、そのメンバ変
数を指定しなければいけないとなると、どの変数をして
しなければいけないのでしょうか?ちなみにcolは、
UserというBeanの集合体(コレクション)です。
iterateタグを使って、Userビーンを一個ずつ調べてい
きたいと思っているのですが、どの様にすればよろしい
のでしょうか?

補足日時:2003/08/23 21:26
    • good
    • 0
この回答へのお礼

JSPにスクリプトを書くのもどうかと思っていたので、
思い切ってCollectionBeanという新しいクラスを作る事
にしました。具体的には、JSPからビーンのGetが呼ばれ
ると、Getの中でuserBO.findAllUser()呼び、その結果
をJSPの戻すという形です。

<jsp:useBean id="cols" class="aloha.entity.CollectionBean" />
<table><tr>
<logic:iterate id="col" name="cols" property="users" length="5" >
<td>ID: <bean:write name="col" property="id" /></td></logic:iterate>

最近”Tomcatを再起動した直後なら動くのに、しばらく
すると動かなくなる”Actionが多発しているので、結果
はなんとも言えないのですが、例によってTomcatを再起
動した直後なら正しい結果が得られました。アドバイス
ありがとうございました。

お礼日時:2003/08/24 16:36

こんにちは、川西と申します。


<logic:iterate id="user", name="col", length="5">
このタグのname属性にcolとありますが、
colというループさせるためのBeanはありますか?

>org.apache.jasper.JasperException: Cannot find >bean col in scope null
のエラーはcolという名前のBeanがスコープ内にないよ
というエラーメッセージです。

参考URL:http://liffey2.infoseek.livedoor.com/java/struts …
    • good
    • 0

Strutsも、TagLibも利用したことがないので何ともいえませんが、


<logic:iterate id="user", name="col", length="5">
と、各属性をタグで区切っているのがまずいけないと思います。
<logic:iterate id="user" name="col" length="5">
と修正してみてどうでしょうか。

この回答への補足

run34ricky様のおっしゃるとおり、コンマが必要ありま
せんでした。しかし、今度は以下の様なエラーが出てし
まいます。
org.apache.jasper.JasperException: Cannot find bean col in scope null

iterateタグに、scope="request"を加えても
javax.servlet.ServletException: Cannot find bean col in scope request
となってしまいます。どの様に対処すればよろしいので
しょうか。

補足日時:2003/08/20 21:16
    • good
    • 0

<logic:iterate id="user", name="col", length="5">



途中のコンマは要らないのでは?

strutsのサンプルJSPを見ると入っていません。

この回答への補足

Yuji様のおっしゃるとおり、コンマが必要ありませんで
した。しかし、今度は以下の様なエラーが出てしまいま
す。
org.apache.jasper.JasperException: Cannot find bean col in scope null

iterateタグに、scope="request"を加えても
javax.servlet.ServletException: Cannot find bean col in scope request
となってしまいます。どの様に対処すればよろしいので
しょうか。

補足日時:2003/08/20 21:15
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!