Hi David,
1) My form declaration:
<form-bean name="nivelDeEmpresaForm"
type="org.apache.struts.action.DynaActionForm">
<form-property name="nivelDeEmpresa"
type="java.lang.String"></form-property>
<form-property name="diasBajaSup"
type="java.lang.Integer"></form-property>
<form-property name="diasBajaInf"
type="java.lang.Integer"></form-property>
<form-property name="diasAlarma"
type="java.lang.Integer"></form-property>
<form-property name="limit"
type="java.lang.Integer"></form-property>
<form-property name="offset"
type="java.lang.Integer"></form-property>
</form-bean>
2) That's one of my forms in a .jsp page
<html:form action="/partesMedicosDiasAlarma.do">
<html:hidden property="diasAlarma" value="${diasAlarma}"/>
<html:hidden property="offset" value="0"/>
<input type="hidden" name="limit" value="<bean:message
key="limit"/>">
<bean:message key="nivelDeEmpresa"/>
<html:select property="nivelDeEmpresa">
<html:option value=""></html:option>
<html:optionsCollection name="listaNivelesDeEmpresa"
value="idNivelDeEmpresa" label="nombre"/>
</html:select>
<html:submit titleKey="iniciaPartesMedicosPage.submit"/></td>
</html:form>
3) And my Actions definitions. With Tiles:
<action path="/partesMedicos"
type="com.indicusoft.jobmedical.struts.PartesMedicosAction"
name="nivelDeEmpresaForm"
input="administrador.iniciaPartesMedicos.page">
<forward name="failure"
path="administrador.partesMedicos.page"></forward>
<forward name="success"
path="administrador.partesMedicos.page"></forward>
</action>
The same action with .jsp pages.
<action path="/partesMedicosJSP"
type="com.indicusoft.jobmedical.struts.PartesMedicosAction"
name="nivelDeEmpresaForm"
input="/administrador/iniciaPartesMedicos.jsp">
<forward name="failure"
path="/administrador/partesMedicos.jsp"></forward>
<forward name="success"
path="/administrador/partesMedicos.jsp"></forward>
</action>
As you can see, I'm not using the forward feature.
Thx,
Ronnie
-----Mensaje original-----
De: David G. Friedman [mailto:[EMAIL PROTECTED]
Enviado el: miércoles, 20 de julio de 2005 20:09
Para: Struts Users Mailing List
Asunto: RE: TilesRequestProcessor is executed twice
Ronnie,
Here is what I see: you have two traces that both invoke your
Action.execute() with one call (each) from the TilesRequestProcessor. Since
your trace doesn't show two calls to the Tiles Request Processor, that
suggests your browser is submitting twice. The question is why is it
different when you have a Tile listed as your success/error ActionForward.
To help debug this, can you show us:
1) Your form's <form .... > declaration tag (especially any onclick
declarations).
2) Any submit buttons (both HTML the browser sees and from the JSP page) you
use in that form with any onclick="..." declarations so we can be sure it
isn't performing a submit calls from a submit button resulting in some sort
of double submit such as you saw?
3) Your Action and forward definitions for both the tile use and the direct
JSP use. For example, are you adding 'redirect="true"' to your forward when
you are using a JSP so the browser redirects externally to the JSP or with
it as false so it performs an internal submit so the browser never knows the
true destination/JSP-page?
Regards,
David
-----Original Message-----
From: Ronnie Arosa [mailto:[EMAIL PROTECTED]
Sent: Wednesday, July 20, 2005 1:51 PM
To: 'Struts Users Mailing List'
Subject: RE: TilesRequestProcessor is executed twice
Well, I'm debugging my source code with Sysdeo's eclipse plugin. I toggled a
breakpoint in one of my action, and founded that it'd been executed twice.
Of course results of my actions are obtained twice (i.e. an insert in a
database is done twice).
I've added the 2 stack traces below this.
This is the first execution's stack trace:
Thread [http-80-Processor22] (Suspended (breakpoint at line 46 in
PartesMedicosAction))
PartesMedicosAction.execute(ActionMapping, ActionForm,
HttpServletRequest, HttpServletResponse) line: 46
TilesRequestProcessor(RequestProcessor).processActionPerform(HttpServletRequ
est, HttpServletResponse, Action, ActionForm, ActionMapping) line: 421
TilesRequestProcessor(RequestProcessor).process(HttpServletRequest,
HttpServletResponse) line: 226
ActionServlet.process(HttpServletRequest, HttpServletResponse) line:
1164
ActionServlet.doPost(HttpServletRequest, HttpServletResponse) line:
415
ActionServlet(HttpServlet).service(HttpServletRequest,
HttpServletResponse) line: 709
ActionServlet(HttpServlet).service(ServletRequest, ServletResponse)
line: 802
ApplicationFilterChain.internalDoFilter(ServletRequest,
ServletResponse) line: 252
ApplicationFilterChain.doFilter(ServletRequest, ServletResponse)
line: 173
StandardWrapperValve.invoke(Request, Response) line: 213
StandardContextValve.invoke(Request, Response) line: 178
StandardHostValve.invoke(Request, Response) line: 126
ErrorReportValve.invoke(Request, Response) line: 105
StandardEngineValve.invoke(Request, Response) line: 107
CoyoteAdapter.service(Request, Response) line: 148
Http11Processor.process(InputStream, OutputStream) line: 856
Http11Protocol$Http11ConnectionHandler.processConnection(TcpConnection,
Object[]) line: 744
PoolTcpEndpoint.processSocket(Socket, TcpConnection, Object[]) line:
527
LeaderFollowerWorkerThread.runIt(Object[]) line: 80
ThreadPool$ControlRunnable.run() line: 684
ThreadWithAttributes(Thread).run() line: 595
The second time the Action is executed:
Thread [http-80-Processor25] (Suspended (breakpoint at line 46 in
PartesMedicosAction))
PartesMedicosAction.execute(ActionMapping, ActionForm,
HttpServletRequest, HttpServletResponse) line: 46
TilesRequestProcessor(RequestProcessor).processActionPerform(HttpServletRequ
est, HttpServletResponse, Action, ActionForm, ActionMapping) line: 421
TilesRequestProcessor(RequestProcessor).process(HttpServletRequest,
HttpServletResponse) line: 226
ActionServlet.process(HttpServletRequest, HttpServletResponse) line:
1164
ActionServlet.doGet(HttpServletRequest, HttpServletResponse) line:
397
ActionServlet(HttpServlet).service(HttpServletRequest,
HttpServletResponse) line: 689
ActionServlet(HttpServlet).service(ServletRequest, ServletResponse)
line: 802
ApplicationFilterChain.internalDoFilter(ServletRequest,
ServletResponse) line: 252
ApplicationFilterChain.doFilter(ServletRequest, ServletResponse)
line: 173
StandardWrapperValve.invoke(Request, Response) line: 213
StandardContextValve.invoke(Request, Response) line: 178
StandardHostValve.invoke(Request, Response) line: 126
ErrorReportValve.invoke(Request, Response) line: 105
StandardEngineValve.invoke(Request, Response) line: 107
CoyoteAdapter.service(Request, Response) line: 148
Http11Processor.process(InputStream, OutputStream) line: 856
Http11Protocol$Http11ConnectionHandler.processConnection(TcpConnection,
Object[]) line: 744
PoolTcpEndpoint.processSocket(Socket, TcpConnection, Object[]) line:
527
LeaderFollowerWorkerThread.runIt(Object[]) line: 80
ThreadPool$ControlRunnable.run() line: 684
ThreadWithAttributes(Thread).run() line: 595
Thx. Ronnie.
-----Mensaje original-----
De: David G. Friedman [mailto:[EMAIL PROTECTED]
Enviado el: miércoles, 20 de julio de 2005 17:19
Para: Struts Users Mailing List
Asunto: RE: TilesRequestProcessor is executed twice
Ronnie,
What do you see that makes you think the tiles request is bring processed
twice? Perhaps that indicator can help us determine your problem.
Regards,
David
-----Original Message-----
From: Ronnie Arosa [mailto:[EMAIL PROTECTED]
Sent: Wednesday, July 20, 2005 6:19 AM
To: Struts Users Mailing List
Subject: TilesRequestProcessor is executed twice
Hello everybody,
I'm working in a struts application with tiles and modules. Its my first
time working with tiles and I felt into a problem: the TilesRequestProcessor
is called twice. This happens when I forward my actions to a tile. If the
same action is forward to a simple page (i.e. a jsp page) everything goes
normally.
Here is one of my actions definition:
<action path="/myRequest" type="com.indicusoft.struts.myRequestAction">
<forward name="failure" path="myRequest.page"></forward>
<forward name="success" path="myRequest.page"></forward>
</action>
And this is my tiles definition file:
<definition name=".mainLayout" path="/common/classicLayout.jsp">
<put name="title" value="My application"></put>
<put name="header" value="/common/header.jsp"></put>
<put name="menu" value="/commons/blank.jsp"></put>
<put name="footer" value="/common/footer.jsp"></put>
<put name="error" value="/common/error.jsp"></put>
<put name="body" value=""></put>
</definition>
<definition name="myRequest.page" extends=".mainLayout">
<put name="title" value="Request Page"></put>
<put name="body" value="/myRequest.jsp"></put>
</definition>
Thanks in advance.
Ronnie.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]