- - PR -
struts logic:iterate 条件により入力不可にしたい
| 投稿者 | 投稿内容 |
|---|---|
|
投稿日時: 2004-07-28 20:07
こんにちは。
logic:iterateを使用しテーブル行を固定で作成しております。(必ず10行とか) で表示データが5行しか無い場合、以降の5行のテキストをdisableにしたいのですが、出来ません。 試しに、 <logic:iterate id="recipe" name="HelloForm" property="recipe" indexId="index"> <tr> <% String disable = "disabled = 'true'"; %> <td><html:text name="recipe" property="text1" indexed="true" <%= disable %>/></td> </tr> とすると、500エラーです。 直接 <html:text name="recipe" property="text1" indexed="true" disabled = 'true'> と書くと正常です。 また、 <tr> <% String disable = "disabled = 'true'"; %> <td><input type="text" name="text1" value="b" <%= disable %>></td> </tr> </table> と書いても正常です。 <logic:iterate id="recipe" name="HelloForm" property="recipe" indexId="index"> <tr> <% String disable = "disabled = 'true'"; %> <td><html:text name="recipe" property="text1" indexed="true" <%= disable %>/></td> </tr> というのは何が悪いのでしょう?それとも出来ないのでしょうか? どうかよろしくご教授願います。 |
|
投稿日時: 2004-07-28 21:29
「500エラー」とのことですので、何かサーバ側で起きているはずです。ログや標準(エラー)出力を確認してはいかがでしょうか?
NullPointerException とか ArrayIndexOutOfBoundsException とか出ていませんか? |
|
投稿日時: 2004-07-28 22:23
お返事ありがとうございます。
JSP側の例外ではなさげです・・・ たぶん、JSPのstrutsタグをJAVAに落とす時に、変な変換されてるんじゃないかと思うのですが・・ 書き方が悪いのですよね・・・ タグが閉じられてないって例外っぽいですし・・JSPもstrutsも今月からやり始めて試行錯誤です。 お気付きの点があれば宜しくお願い致します。 例外は以下です。 org.apache.jasper.JasperException: /Hello.jsp(36,4) jsp.error.unterminated.tag at org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:94) at org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:428) at org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:126) at org.apache.jasper.compiler.Parser.parseCustomTag(Parser.java:729) at org.apache.jasper.compiler.Parser.parseElements(Parser.java:804) at org.apache.jasper.compiler.Parser.parseBody(Parser.java:833) at org.apache.jasper.compiler.Parser.parseCustomTag(Parser.java:753) at org.apache.jasper.compiler.Parser.parseElements(Parser.java:804) at org.apache.jasper.compiler.Parser.parseBody(Parser.java:833) at org.apache.jasper.compiler.Parser.parseCustomTag(Parser.java:753) at org.apache.jasper.compiler.Parser.parseElements(Parser.java:804) at org.apache.jasper.compiler.Parser.parseBody(Parser.java:833) at org.apache.jasper.compiler.Parser.parseCustomTag(Parser.java:753) at org.apache.jasper.compiler.Parser.parseElements(Parser.java:804) at org.apache.jasper.compiler.Parser.parse(Parser.java:122) at org.apache.jasper.compiler.ParserController.parse(ParserController.java:199) at org.apache.jasper.compiler.ParserController.parse(ParserController.java:153) at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:227) at org.apache.jasper.compiler.Compiler.compile(Compiler.java:369) at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:473) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:190) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:684) at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:432) at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:356) 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 org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2422) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:163) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:199) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:828) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:700) at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:584) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683) at java.lang.Thread.run(Unknown Source) |
|
投稿日時: 2004-07-28 22:34
Jasper には明るくないのですが、34行目でタグの不一致(閉じられていない?)が発生しているのではないでしょうか?
タグの閉じ具合に注意してみましょう。 <html:text name="recipe" property="text1" indexed="true" disabled = 'true'> は閉じていなくて、 <html:text name="recipe" property="text1" indexed="true" <%= disable %>/> は閉じているように見えますが。 |
|
投稿日時: 2004-07-28 22:51
すいません。誤記でした。
それでは500エラーですね。 本当は <html:text name="recipe" property="text1" indexed="true" disabled = 'true'/>でしたごめんなさいませ。これはうまく行くんですよね。直書きだと・・ |
|
投稿日時: 2004-07-29 00:34
<% String disable = "true";%>
<html:text name="recipe" property="text1" indexed="true" disabled="<%= disable %>" /> ではだめでしょうか? |
|
投稿日時: 2004-07-29 23:58
プリンスさんこんばんは。
<table> <logic:iterate id="recipe" name="HelloForm" property="recipe" indexId="index"> <tr> <% String disable = "true";%> <html:text name="recipe" property="text1" indexed="true" disabled="<%= disable %>" /> </tr> </logic:iterate> </tr> </table> と書くと HTTP Status 500 - -------------------------------------------------------------------------------- type Exception report message description The server encountered an internal error () that prevented it from fulfilling this request. exception org.apache.jasper.JasperException: JSPのクラスをコンパイルできません JSPファイル: /Hello.jsp の中の行: 22でエラーが発生しました 生成されたサーブレットのエラーです: [javac] Compiling 1 source file D:\struts-test01\work\org\apache\jsp\Hello_jsp.java:137: org.apache.struts.taglib.html.BaseHandlerTag の setDisabled(boolean) は (java.lang.String) に適用できません。 _jspx_th_html_text_1.setDisabled( disable ); ^ エラー 1 個 at org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:130) となってしまいます。なりません? |
|
投稿日時: 2004-07-30 09:43
未検証&思いつきですが。
>org.apache.struts.taglib.html.BaseHandlerTag の setDisabled(boolean) は >(java.lang.String) に適用できません。 このログを見ると <% boolean disable = true;%> <html:text name="recipe" property="text1" indexed="true" disabled="<%= disable %>" /> にしたら、動くような気がしません? |
