السلام عليكم و أتمنى أن يعجبكم هذا الدرس الأول ، و أنا مستعد للرد على جميع استفاساراتكم
سوف أشرح المراحل التي تمر بها Strust
- The user requests a form
المستخدم يطلب صفحة من browser فينشىء request و يذهب إلى actionServlet ، و ظيفة actionServelt أنها تستقبل جنيع request - That address is mapped by struts-config.xml to an Action class
بعد و صول requsdt إلى ActionServlet تحدد ActionServlet ال Action عن طريق ملف struts-config.xml - Struts forwards request to the appropriate JSP page
بعد تحديد action ، يتم تحديد صفحات JSP
و هذا مثال على كود من ملف struts-config.xml
<action path="/register2" type="coreservlets.RegisterAction2"> <forward name="bad-address" path="/WEB-INF/results/bad-address.jsp"/> <forward name="bad-password" path="/WEB-INF/results/bad-password.jsp"/> </action>
في هذا المثال هنا عرفنا address اسمه register2.do بحيث لو طلبه المستخدم سوف حوله إالى ActionServlet و من ثم الى Action و اسمه coreservlets.RegisterAction2 فإذا ارجع bad-address فإنه سوف يحوله الى صفحة
WEB-INF/results/bad-address.jsp
و اذا ارجع bad-address فإنه سوف يحوله الى صفحة bad-password.jsp
لندرس كود classs coreservlets.RegisterAction2
package coreservlets;
import javax.servlet.http.*;
import org.apache.struts.action.*;
public class RegisterAction2 extends Action {
public ActionForward execute(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Exception {
String email = request.getParameter("email");
String password = request.getParameter("password");
if ((email == null) ||
(email.trim().length() < 3) ||
(email.indexOf("@") == -1)) {
return(mapping.findForward("bad-address"));
} else if ((password == null) ||
(password.trim().length() < 6)) {
return(mapping.findForward("bad-password"));
} else {
return(mapping.findForward("success"));
}
}
}نلاحظ ما يلي أنه يعالج ال request و يؤخذ قيم كلة السر و الإيميل و يعمل عليها التأكد من أنها صحيحة ثم يحوله map معين حتى تذهب الى صفحة jsp المطلوبة
و مع هذا الموضوع و ضعت المثال و اسأل الله عز وجل أن تستفيدوا من هذا المثال