You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Odyssée TREMOULIS <od...@hotmail.com> on 2010/03/24 15:12:48 UTC
JSP with a form and importing another form
Hi all !
If I post a form in the jsp then it execute the doPost of the right servlet.
If the servlet detects an error in the form, I send back to the jsp.
All is OK.
But...
If the jsp has an <c:import url="/form2"/> ( /form2 is a servlet redirecting to another jsp, and c:import is the 'core' taglib),
Tomcat do the import with the POST method request and it's the doPOST method of my form2 servlet who is executed
Is it a normal way ?
Here's all the code:
WEB.XML
Code:
<welcome-file-list>
<welcome-file>form1.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>form1</servlet-name>
<servlet-class>org.Form1</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>form1</servlet-name>
<url-pattern>/form1</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>form2</servlet-name>
<servlet-class>org.Form2</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>form2</servlet-name>
<url-pattern>/form2</url-pattern>
</servlet-mapping>
FORM1.JSP
Code:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<body>
<form action="/form1" method="post">
<input type="text" name="mytext"/>
<input type="submit" name="mysubmit"/>
</form>
<c:import url="/form2" />
</body>
FORM2.JSP
Code:
<body>
<form action="/form2" method="post">
<input type="text" name="mytext2"/>
<input type="submit" name="mysubmit2"/>
</form>
</body>
org.Form1.class
Code:
public class Form1 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
System.out.println("DOGET INITIALIZING FORM1");
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
System.out.println("DOPOST FORM1");
// I detect errors in my form: go back
req.getRequestDispatcher("/form1.jsp").forward(req, resp);
}
}
org.Form2.class
Code:
public class Form2 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
System.out.println("DOGET INITIALIZING FORM2");
req.getRequestDispatcher("/form2.jsp").forward(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
System.out.println("DOPOST FORM2");
}
}
So, when I submit something with the form 1 it shows:
DOPOST FORM1
DOPOST FORM2
Thanks
_________________________________________________________________
Hotmail arrive sur votre téléphone ! Compatible Iphone, Windows Phone, Blackberry, …
http://www.messengersurvotremobile.com/?d=Hotmail
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org