- - PR -
Strutsについて教えてください!
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2004-10-10 03:52
はじめまして、まるこです。
今EclipseでStrutsを使用しようとしているのですが 設定がおかしいのかErrorになってしまいます。 タグにエラーが出てしまうんです。 いろいろ試しているのですがもう自分ではどうしたらよいのか 困っています。。 どうしたらよいのかアドバイスお願いします。 Struts以前の問題かもしれませんが。。 JSP(JSP名はhallo) <%@ page contentType="text/html; charset=Windows-31J"%> <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%> <html> <html:html> <head> <title>ログオン画面</title> </head> <body bgcolor="#ffffff"> <center> <h3>ログオン画面</h3> <html:form action="/hello"> ←これを追加するとエラーになります。 <html:errors /> <table border="0"> <tr><td>社員番号:</td></tr> <tr><td>パスワード:</td></td></tr> </table> <br><br> <html:submit value="ログオン" /> </html:form> ←これを追加するとエラーになります。 </center> </body> </html:html> </html> Eclipseでのエラー エラー内容。 Apache Tomcat/4.0.4 - HTTP Status 500 - Internal Server Error type Exception report message Internal Server Error description The server encountered an internal error (Internal Server Error) that prevented it from fulfilling this request. exception javax.servlet.ServletException: Cannot retrieve definition for form bean null at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:471) at org.apache.jsp.hello$jsp._jspService(hello$jsp.java:183) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:107) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:201) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:381) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:473) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:683) at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:431) at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:355) at org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1069) at org.apache.struts.tiles.TilesRequestProcessor.doForward(TilesRequestProcessor.java:274) at org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:455) at org.apache.struts.tiles.TilesRequestProcessor.processForwardConfig(TilesRequestProcessor.java:320) at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:279) at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482) at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507) at javax.servlet.http.HttpServlet.service(HttpServlet.java:740) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193) at sample.web.filter.EncodingFilter.doFilter(EncodingFilter.java:65) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:213) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:190) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566) at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2347) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566) at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:468) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1027) at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1125) at java.lang.Thread.run(Thread.java:536) root cause javax.servlet.jsp.JspException: Cannot retrieve definition for form bean null at org.apache.struts.taglib.html.FormTag.lookup(FormTag.java:831) at org.apache.struts.taglib.html.FormTag.doStartTag(FormTag.java:506) at org.apache.jsp.hello$jsp._jspService(hello$jsp.java:84) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:107) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:201) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:381) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:473) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:683) at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:431) at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:355) at org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1069) at org.apache.struts.tiles.TilesRequestProcessor.doForward(TilesRequestProcessor.java:274) at org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:455) at org.apache.struts.tiles.TilesRequestProcessor.processForwardConfig(TilesRequestProcessor.java:320) at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:279) at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482) at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507) at javax.servlet.http.HttpServlet.service(HttpServlet.java:740) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193) at sample.web.filter.EncodingFilter.doFilter(EncodingFilter.java:65) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:213) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:190) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566) at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2347) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566) at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:468) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1027) at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1125) at java.lang.Thread.run(Thread.java:536) | ||||
|
投稿日時: 2004-10-10 06:13
<%@ taglib uri="/tags/struts-html" prefix="html" %>
<html>.....</html> ←削除 | ||||
|
投稿日時: 2004-10-10 11:18
回答ありがとうございます。
<%@ taglib uri="/tags/struts-html" prefix="html" %> を追加して <html></html>を削除しましたがやはり同じエラーが出てしまいます。 JSP以外がおかしいのでしょうか? Xmlの設定とかも関係ありますか? とうか宜しくお願いします。 パッケージ名:erika JSP:hello.jsp 初期画面 JSP:menu 遷移先画面 class:HelloAction.java class:LogonForm Xml <?xml version="1.0" encoding="ISO-8859-1" ?> <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd"> <struts-config> <!-- ======================================== Form Bean Definitions --> <form-beans> <form-bean name="LogonForm" type="erika.LogonForm"/> </form-beans> <!-- ================================= Global Exception Definitions --> <global-exceptions> </global-exceptions> <!-- =================================== Global Forward Definitions --> <global-forwards> <!-- Default forward to "Welcome" action --> <!-- Demonstrates using index.jsp to forward --> <forward name="welcome" path="/Welcome.do"/> </global-forwards> <!-- =================================== Action Mapping Definitions --> <action-mappings> <!-- Default "Welcome" action --> <!-- Forwards to Welcome.jsp --> <action path="/hello" type="erika.HelloAction"> <forward name="erika" path="/hello.jsp"/> </action> <action path="/menu" type="erika.HelloAction"> <forward name="erika" path="/menu.jsp"/> </action> </action-mappings> <!-- ===================================== Controller Configuration --> <controller processorClass="org.apache.struts.tiles.TilesRequestProcessor"/> <!-- ================================ Message Resources Definitions --> <message-resources parameter="resources.application"/> <!-- ======================================= Plug Ins Configuration --> <!-- ========== Tiles plugin =================== --> <!-- comment following if struts1.0.x --> <plug-in className="org.apache.struts.tiles.TilesPlugin" > <set-property property="definitions-config" value="/WEB-INF/tiles-defs.xml" /> <set-property property="moduleAware" value="true" /> <set-property property="definitions-parser-validate" value="true" /> </plug-in> <!-- end comment if struts1.0.x --> <plug-in className="org.apache.struts.validator.ValidatorPlugIn"> <set-property property="pathnames" value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml"/> </plug-in> </struts-config> [ メッセージ編集済み 編集者: まるこ 編集日時 2004-10-10 11:19 ] | ||||
|
投稿日時: 2004-10-10 12:05
まるこさん、こんにちは。
エラーメッセージに答えが書いてありますけど。
失礼ながら、これ、Strutsの基本というか原点だと思いますが。 typeとか必要ないのでしょうか? | ||||
|
投稿日時: 2004-10-10 13:43
html:formを使うときはstruts-config.xmlのactionで必ずFormBeanを指定する必要があります。
以下のようにname属性でFormBeanを指定してみてください。
[ メッセージ編集済み 編集者: Pickles 編集日時 2004-10-10 13:44 ] | ||||
|
投稿日時: 2004-10-11 02:08
返信ありがとうございます。
<action path="/hello" type="erika.HelloAction" name="LogonForm"> <forward name="erika" path="/hello.jsp"/> </action> を追加したら画面が表示されるようになりました! さらに質問なのですが、 初期画面(hello.jsp)の表示はこれでできるようになりましたが 遷移先画面(menu.jsp)に遷移するのに xmlに <action path="/hello" type="erika.MenuAction" name="LogonForm"> <forward name="erika" path="/menu.jsp"/> </action> を追加してみたのですが遷移しません。 それとも初期画面表示には http://localhost:8080/test3/hello.do ではなく、 http://localhost:8080/test3/hello.jsp で表示させておけばいいのでしょうか? そうするとログオンボタンを押すと画面が遷移します。 http://localhost:8080/test3/menu.do その場合は <action path="/hello" type="erika.HelloAction" name="LogonForm"> <forward name="erika" path="/hello.jsp"/> </action> をXMLから削除していますが。。 またmenu.jspに遷移した際社員番号が表示されません。 LogonFormでSystem文を追加してempnoの値が取得できているか 確認してみましたが、取得できていました。 <html:html> <head> <title>メニュー画面</title> </head> <body bgcolor="#ffffff"> <center> <h3>メニュー画面</h3> <br> ログオン中の社員番号:<bean:write name="LogonForm" property="empno" /> </center> </body> </html:html> 初歩的な質問ばかりで申し訳ありませんが どうぞ宜しくお願いします。 | ||||
|
投稿日時: 2004-10-11 02:19
こんばんわ、ちばです。
上と下の定義でaction path="/hello"が重複しているのが原因と思います。 | ||||
|
投稿日時: 2004-10-12 01:10
返信ありがとうございます。
action path="/hello"の部分の修正と <%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %> の追加で画面遷移した画面に表示されるようになりました。 そしてまたまた質問なのですが <%@ page contentType="text/html; charset=Shift_JIS"%> この部分にエラーマークが発生しています。 Ecipseでの画面上に。。 でもプログラムは正常に動いていますがTomcatを起動した時に エラーが出ているみたいなんです。 エラーの一部です 何か基本的な設定がおかしいのでしょうか? 変な質問ばかりですみません。。 宜しくお願いします。 種類 状況 優先順位 説明 リソース フォルダー内 ロケーション エラー _jspx_tagPool_html_errors は解決できません。 hello.jsp test3 /test3/hello.jsp-Line:[0] の 1 行 エラー _jspx_tagPool_html_errors は解決できません。 hello.jsp test3 /test3/hello.jsp-Line:[0] の 1 行 エラー _jspx_tagPool_html_form_action は解決できません。 hello.jsp test3 /test3/hello.jsp-Line:[0] の 1 行 エラー _jspx_tagPool_html_form_action は解決できません。 hello.jsp test3 /test3/hello.jsp-Line:[0] の 1 行 エラー _jspx_tagPool_html_form_action は解決できません。 hello.jsp test3 /test3/hello.jsp-Line:[0] の 1 行 エラー _jspx_tagPool_html_html は解決できません。 hello.jsp test3 /test3/hello.jsp-Line:[0] の 1 行 エラー _jspx_tagPool_html_html は解決できません。 hello.jsp test3 /test3/hello.jsp-Line:[0] の 1 行 エラー _jspx_tagPool_html_password_size_property_maxlength は解決できません。 hello.jsp test3 /test3/hello.jsp-Line:[0] の 1 行 エラー _jspx_tagPool_html_password_size_property_maxlength は解決できません。 hello.jsp test3 /test3/hello.jsp-Line:[0] の 1 行 エラー _jspx_tagPool_html_password_size_property_maxlength は解決できません。 hello.jsp test3 /test3/hello.jsp-Line:[0] の 1 行 エラー _jspx_tagPool_html_submit_value は解決できません。 hello.jsp test3 /test3/hello.jsp-Line:[0] の 1 行 エラー _jspx_tagPool_html_submit_value は解決できません。 hello.jsp test3 /test3/hello.jsp-Line:[0] の 1 行 |
1