- - PR -
Strutsのタグで数値だけ表示されない。
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2007-04-13 15:27
ログイン処理でDBからユーザー情報を取得し、ログイン後の画面でステータスを表示させているのですが、数値だけ表示されません。文字列は正常に表示されます。
UserFormというオブジェクトの中にステータスを入れているのですが、オブジェクトの中には値が入っているのですが、jspで表示しようとするとエラーが起こります。 エラー内容は以下のとおりです。 javax.servlet.ServletException: キー org.apache.struts.action.MESSAGE に対するメッセージリソースが見つかりません org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:846) org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:779) org.apache.jsp.home_jsp._jspService(home_jsp.java:74) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98) javax.servlet.http.HttpServlet.service(HttpServlet.java:803) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265) javax.servlet.http.HttpServlet.service(HttpServlet.java:803) org.apache.struts.chain.commands.servlet.PerformForward.handleAsForward(PerformForward.java:113) org.apache.struts.chain.commands.servlet.PerformForward.perform(PerformForward.java:96) org.apache.struts.chain.commands.AbstractPerformForward.execute(AbstractPerformForward.java:54) org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51) org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190) org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:304) org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190) org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283) org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913) org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462) javax.servlet.http.HttpServlet.service(HttpServlet.java:710) javax.servlet.http.HttpServlet.service(HttpServlet.java:803) filter.CloseThreadLocalSessoinFilter.doFilter(CloseThreadLocalSessoinFilter.java:19) filter.EncodingFilter.doFilter(EncodingFilter.java:19) 原因 javax.servlet.jsp.JspException: キー org.apache.struts.action.MESSAGE に対するメッセージリソースが見つかりません org.apache.struts.taglib.TagUtils.retrieveMessageResources(TagUtils.java:1112) org.apache.struts.taglib.TagUtils.message(TagUtils.java:956) org.apache.struts.taglib.TagUtils.message(TagUtils.java:936) org.apache.struts.taglib.bean.WriteTag.retrieveFormatString(WriteTag.java:264) org.apache.struts.taglib.bean.WriteTag.formatValue(WriteTag.java:321) org.apache.struts.taglib.bean.WriteTag.doStartTag(WriteTag.java:241) org.apache.jsp.home_jsp._jspx_meth_bean_005fwrite_005f0(home_jsp.java:146) org.apache.jsp.home_jsp._jspx_meth_html_005fhtml_005f0(home_jsp.java:101) org.apache.jsp.home_jsp._jspService(home_jsp.java:65) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98) javax.servlet.http.HttpServlet.service(HttpServlet.java:803) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265) javax.servlet.http.HttpServlet.service(HttpServlet.java:803) org.apache.struts.chain.commands.servlet.PerformForward.handleAsForward(PerformForward.java:113) org.apache.struts.chain.commands.servlet.PerformForward.perform(PerformForward.java:96) org.apache.struts.chain.commands.AbstractPerformForward.execute(AbstractPerformForward.java:54) org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51) org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190) org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:304) org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190) org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283) org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913) org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462) javax.servlet.http.HttpServlet.service(HttpServlet.java:710) javax.servlet.http.HttpServlet.service(HttpServlet.java:803) filter.CloseThreadLocalSessoinFilter.doFilter(CloseThreadLocalSessoinFilter.java:19) filter.EncodingFilter.doFilter(EncodingFilter.java:19) _________________ | ||||||||
|
投稿日時: 2007-04-13 15:34
こんにちは。
JSP側の記述かstruts-config.xmlの記述が原因かなぁ、と。 以下のURLに次の通りに記述されていました。 <bean:message> or struts-config.xml の記述ミス。 属性 bundle の値が struts-config.xml 中、<message-resources> の属性 key の値と異なっている場合。リソースファイル中に存在しない場合 http://grape.sapid.org/tutorial/lec2.html#javax.servlet.ServletException%3A+%83%4C%81%5B+xxx+%82%C9%91%CE%82%B7%82%E9%83%81%83%62%83%5A%81%5B%83%57%83%8A%83%5C%81%5B%83%58%82%AA%8C%A9%82%C2%82%A9%82%E8%82%DC%82%B9%82%F1 | ||||||||
|
投稿日時: 2007-04-13 15:42
>> すみょしさん
回答ありがとうございました。 JSP側には <bean:write name="userForm" property="id" scope="request" /> と記述しています。 他の文字列プロパティはきちんと表示されているので、struts-config.xmlには問題ないと思うんですが。 <bean:write />タグでなんでmessageのことがエラーとなっているのかが _________________ [ メッセージ編集済み 編集者: Tatsuya 編集日時 2007-04-13 15:47 ] | ||||||||
|
投稿日時: 2007-04-13 15:54
メッセージリソースを追加してから classes ディレクトリにコピーされていないとか、再デプロイされていないとか?
| ||||||||
|
投稿日時: 2007-04-13 17:16
んー。 こんなのも見つかりました。 http://www.javaroad.jp/opensource/js_struts9.htm より
たぶんテキストボックスとかには問題なく表示されるような気がします。 上記記述からすると、数値表示のためにはメッセージ・リソースファイルを 必ず用意しないといけないみたいです。 と、思ったんですが、実際確認してみたところ、リソースファイルなくても表示されました。 tldとか、FormとJSPの参照名の一致とかその辺から確認したほうが良いかもです。 | ||||||||
|
投稿日時: 2007-04-16 10:18
>> すみょしさん
回答ありがとうございました。 <bean:write name="userForm" property="id" scope="request" format="######"/> のように、format属性を追加したところ、無事に数値が表示されました。 う〜む、なんか、煮え切らない感じです^^; _________________ |
1