- - PR -
Strutsタグの"html:frame"を使用した時、"bean:write"が使えない
1
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-05-20 10:59
JSPにて、Strutsタグの"html:frame"を次のように記述
<html:frame frameName="headarea" page="/M37A041010.jsp" marginwidth="0" marginheight="0" scrolling="yes" noresize="true"/> <html:frame frameName="bodyarea" page="/M37A041020.jsp" marginwidth="0" marginheight="0" scrolling="yes" noresize="false"/> <html:frame frameName="footarea" page="/M37A041030.jsp" marginwidth="0" marginheight="0" scrolling="yes" noresize="true"/> この時、該当するフレーム内で、次のように"bean:write"を記述 <logic:iterate id="topic" name="topics"> <bean:write name="topic" property="title"/> (<bean:write name="topic" property="postDate"/>) <pre><bean:write name="topic" property="content"/></pre> <hr> </logic:iterate> この時、 javax.servlet.ServletException: どのスコープにもBean topics がありません とのエラーとなります。 フレーム構造をとらないで、直接"bean:write"を書いた時には問題なく編集されます。 フレームを使用するときは、beanについて制限等があるのでしょうか? 対処方法を教えてください。よろしくお願いします。 | ||||||||||||
|
投稿日時: 2005-05-20 11:32
はずしているかも知れませんが
Struts-configの該当するActionタグのscopeを確認してください。 scope="request"みたいになっていませんか? なっていなければ別の原因かな? [ メッセージ編集済み 編集者: hiro 編集日時 2005-05-20 11:33 ] | ||||||||||||
|
投稿日時: 2005-05-20 11:37
Struts-configの該当するActionタグは
<action path="/read" type="blog.ReadAction"> <forward name="ok" path="/M37A041000.jsp"/> </action> としています。 | ||||||||||||
|
投稿日時: 2005-05-20 13:38
scopeの省略値がrequestなのですね、ごめんなさい。
しかし、scope="session"としましたが、現象は変わりません。 Actionの記述がいけないのでしょうか? 次のように記述しています。 public class ReadAction extends Action{ public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse reqponse) throws Exception { BlogController ctrl = BlogController.getInstance(); List topics = ctrl.getTopics(); request.setAttribute("topics", topics); return mapping.findForward("ok"); } } [ メッセージ編集済み 編集者: スイマー 編集日時 2005-05-20 13:39 ] [ メッセージ編集済み 編集者: スイマー 編集日時 2005-05-20 13:39 ] | ||||||||||||
|
投稿日時: 2005-05-20 15:28
topicsがrequestスコープにセットされていますね。 セオリーならばActionFormにsetTopics,getTopicsを定義してActionForm経由でJSPからアクセスするところです。 簡単に直すなら
かな。 | ||||||||||||
|
投稿日時: 2005-05-20 15:57
hiro様、解決しました![]() >セオリーならばActionFormにsetTopics,getTopicsを定義して >ActionForm経由でJSPからアクセスするところです。 はい、今後はこの方法を採用できるように進めていきます。 |
1