- PR -

struts1.2)

1
投稿者投稿内容
未記入
ベテラン
会議室デビュー日: 2004/08/18
投稿数: 81
投稿日時: 2006-04-19 13:56
お世話になります。

現在struts1.2、tomcat4.1.27で作成しています。

下記の<logic:iterateで括ったループの中に、<html:button 定義を作成しましたが
うまくいかずに困っています。
ご教授の方、よろしくお願いします。

1.Result_01.jspについて

1_1.<logic:iterate定義の中に、<html:button定義を作成した。

1_2.<logic:iterate定義でのindexIdの値を、<bean:writeで表示したところ正常に表示した。


2.Result_02.jspについて

2_1.1_2で取得できたindexIdの値を、<html:button のonclickでパラメータとして
指定したところ、エラーになった。(エラーは下記記載)

※1_2で取得できた値なのでそのまま、使えそうな気がしましたがうまくいきませんでした。


■Result_01.jsp =============================================================

<html:html>

<html:form method="post" action="/act">

<logic:iterate id="list" name="dynaForm" property="list" indexId="index" scope="session">

<table border="1">

<td><html:text name="list" property="name" indexed="true"/></td>
<td><html:button value="更新" property="btnUpdate" indexed="true" onclick="btnUpdate('111')"/></td>
<td><bean:write name="index"/></td> ←★このindexは0,1..と正しく表示されている

</table>

</logic:iterate>

</html:form>


</html:html>




■Result_02.jsp =============================================================

<html:html>

<html:form method="post" action="/act">

<logic:iterate id="list" name="dynaForm" property="list" indexId="index" scope="session">

<table border="1">

<td><html:text name="list" property="name" indexed="true"/></td>

↓★indexの値をパラメータにした、onclick="btnUpdate(・・・にコードを書き換えるとjspを表示する際に、下記エラーになる
<td><html:button value="更新" property="btnUpdate" indexed="true" onclick="btnUpdate('<bean:write name="index"/>')"/></td>

<td><bean:write name="index"/></td>
</table>

</logic:iterate>

</html:form>


</html:html>


■エラー =============================================================

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/ManagerTorok.jsp(61,119) 等号記号が必要です
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.parseAttribute(Parser.java:169)
at org.apache.jasper.compiler.Parser.parseAttributes(Parser.java:136)
at org.apache.jasper.compiler.Parser.parseCustomTag(Parser.java:718)
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.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:1056)
at org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:388)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:231)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1164)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:415)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
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 common.EncodingFilterCom.doFilter(EncodingFilterCom.java:27)
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: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:2416)
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:172)
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:223)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:601)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:392)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:565)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:619)
at java.lang.Thread.run(Unknown Source)



--------------------------------------------------------------------------------

Apache Tomcat/4.1.27
ハツキタツミ
大ベテラン
会議室デビュー日: 2005/05/24
投稿数: 108
投稿日時: 2006-04-19 14:25
タグをネストできると考えるほうがおかしい

コード:
<html:button value="更新" property="btnUpdate" indexed="true" onclick="btnUpdate('<%=index%>')"/>

未記入
ベテラン
会議室デビュー日: 2004/08/18
投稿数: 81
投稿日時: 2006-04-19 15:13
ハツキタツミ様、早速の回答有難う御座います。

ご指摘の通り、タグをネストせず、
<html:button ・・・ onclick="btnUpdate('<%=index%>')"/>
のように変更しました。

エラーは取れましたが、btnUpdateの実行先であるJavaScriptで
function btnUpdate(index)
{
alert(index);
}
を実行させたところ、<%=index%>と表示されて値が取得できませんでした。

また、btnUpdate('<%=index%>') ⇒ btnUpdate(<%=index%>)に変更したところ
jspの表示はされますが、alertが表示されなくなり
buttonが機能しなくなりました。

原因の方がよく分かりません。
たびたび、すいませんがよろしくお願いします。
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2006-04-20 02:02
まずは Struts の taglib を使わない、静的な html を書いてみましょう。
それから、今回の jsp より生成された html のソースを見てみましょう。
何がちがいますか?
未記入
ベテラン
会議室デビュー日: 2004/08/18
投稿数: 81
投稿日時: 2006-04-20 12:56
インギさま、スレ有難う御座います。

色々試した見ましたが出来できず、
下記のコードで考えが止まってしまいました。

<html:button ・・・onclick="btnUpdate(\"+index+\")"/>

これでは、的外れでしょうか?
よろしくお願いします。
1

スキルアップ/キャリアアップ(JOB@IT)