مشاهده دست آورد نظرسنجی: این روند (منظورم روند آموزشی در همین پست) در تالار جاوا

رای دهنده
21. شما نمی توانید در این رای گیری رای بدهید
  • به درد می خورد و ادامه دهیم.

    21 100.00%
  • به درد نمی خورد و عوض کنیم.

    0 0%
نمایش نتایج 1 تا 21 از 21

نام تاپیک: Struts

Hybrid View

پست قبلی پست قبلی   پست بعدی پست بعدی
  1. #1
    کاربر دائمی آواتار Bahmany
    تاریخ عضویت
    آبان 1384
    محل زندگی
    No Where
    سن
    39
    پست
    602

    Tick Struts

    سلام
    چند وقت پیش تصمیم گرفته بودم که یک سری مطالبی از طریق چند کتابی که در حال مطالعه هستم در سایت قرار دهم .
    با کمک دوستان در این تاپیک قصد دارم از Struts را بصورت کلی همراه با تعدادی Tutorial شروع کنم.



    Struts چیست ؟
    Struts برنامه ای مبتنی بر وب است که با زبان جاوا پیاده سازی شده است بوسیله این بستر یک برنامه مبتنی بر MVC فراهم می شود.
    بهتر بگم که این برنامه ساختاری در اختیار تون می زاره که تا به راحتی بتونید یک برنامه MVC پیاده سازی کنید و همینطور این برنامه بسیاری از مشکلات پیاده سازی MVC رو رفع و سرعت و کیفیت اون رو بهتر کرده.

    در این برنامه هر درخواست ( از سمت کاربر/Browser) بوسیله یک Object جاوا بنام Action گرفته و پردازش میشه در کلاس Action تمامی امکانات برای پاسخگویی به درخواست ها وجود داره حالا بعد از اینکه Action درخواست رو دریافت کرد و پردازش هایی که شما بهش گفتین رو انجام داد نتایج رو به ActionForm می فرسته و آخر صفحات JSP داده های ActionForm رو نشون می دن.
    http://jakarta.apache.org/struts

  2. #2
    کاربر دائمی آواتار Bahmany
    تاریخ عضویت
    آبان 1384
    محل زندگی
    No Where
    سن
    39
    پست
    602
    کلاس Action : این کلاس برای پاسخگویی به درخواست تعریف و ساخته می شه و از
    org.apache.struts.action.Action مشتق میشه
    و یک متد هم بنام execute داره که عملیات مورد نظر برای پاسخگویی بروی آن انجان میشه.

    کلاس ActionForm : در این کلاس داده های فرستاده شده از سمت Action نگهداری و به صفحه JSP منتقل میشن و این کلاس نیز از کلاس org.apache.struts.action.ActionForm مشتق میشه.

    حالا زیاد نمی خوام وارد ریز توضیحات بشم توی تاپیک بعدی یک Tutorial مقدماتی رو شروع و شرح خواهم داد.
    دوستانی که می بیینند یک جای بحث مشکل داره ممنون میشم توی بحث شرکت کنند.

  3. #3
    سلام
    خیلی خوب و عالیه استفاده می کینم . ممنون .

  4. #4
    کاربر دائمی آواتار Bahmany
    تاریخ عضویت
    آبان 1384
    محل زندگی
    No Where
    سن
    39
    پست
    602
    اولین Tutorial :
    کلاس Action که مسئولیت دریافت و پردازش داده های ActionForm و تولید داده های قابل نمایش را بر عهده دارد می تواند بسته به شرایط مختلف صفحات JSP مختلفی را نیز تولید کند.
    در این Tutorial قصد دارم یک فرم Register ایجاد و داده های آن را به Action ارسال و نتیجه را بوسیله ActionForm ایجاد و در JSP نمایش دهیم.
    متاسفانه همکنون هیچ IDE ندارم اگه جایی از کار مشکل داشت بگید تا اصلاحش کنم

    1- اولین کاری که می کنیم این است که از صحت نصب Struts اطمینان حاصل کنیم
    - اگر شما Netbean 5.5 استفاده می کنید این نرم افزار نیز اتوماتیک نصب می شود
    - اگر استفاده نمی کنید لینکی که در بالا معرفی کرده ام را دنبال کنید و آن را دانلود کیند
    2- Netbean را شروع می کنیم
    3- از منوی File – New Project پروژه جدیدی با موضوع Web Application آغاز می کنیم.
    4- در همان Wizard مربوطه به New Web Application در مرحله سوم شما می توانید Struts را انتخاب کنید تا وب سایت شما از این امکان پشتیبانی کند.
    5- خوب پروژه شما ساخته شد !! حالا شما یک پروژه با struts ساخته اید.
    حالا کمی فایل هایی را که Netbeans اتوماتیک برای شما ساخته را نگاه کنید و سعی کنید اسامی فایل ها و پوشه هایی را که برای شما ایجاد کرده را مورد بررسی قرار دهید

    پوشه WEB-INF
    در این پوشه تمامی تنظیمات وب سایت شما قرار خواهد گرفت میشه گفت یه چیزی مثل web-config در C#‎ ولی این (WEB-INF) کجا و اون (web-config) کجا.!
    تمامی تبادلات بین Action ActionForm و JSP در فایل های موجود در این پوشه تنظیم می شوند. باید این رو بگم که کار در این پوشه و این فایل ها زیبایی و کارامدی خاصی داره که در پروژه های بزرگ خیلی می تونه کمک کننده باشه.

    فایل struts-config.xml :
    این فایل یک فایل xml است حاوی تنظیمات برنامه وب است.
    خوب وقتی Browser درخواستی را به سمت سرور می فرستد این فایل آن درخواست را در اولین مرحله مورد بررسی قرار می دهد.
    مثلا شما می روید شرکت XZY می گید آقا من با رئیس قسمت ثبت نام کار دارم و بعد نگهبان میره و آقای رئیس قسمت که نامش آقای Jack.jsp هست رو میاره.
    مثلا شما به سمت وب سرور درخواست Boss.do رو می فرستید وقتی struts این درخواست رو می گیره از struts-config می خواد که یه بلایی سر این دستور بیاره بعد struts-config به اندرون خودش مراجعه می کنه که ببینه شما چی براش تعریف کردید بعد می بینه که شما گفتید آقا Boss اگه اومد فلان Action رو انجام بده و بعد فلان Action انجام میشه و درخواست بوسیله ActionForm به سمت JSP هدایت و به کاربر نشون داده میشن .
    فعلان این خط کد رو داشته باشید:
    <action path = "/Boss" type = "j2eeProject.struts.FirstAction"></action>
    تا پست بعدی

  5. #5
    کاربر دائمی آواتار Bahmany
    تاریخ عضویت
    آبان 1384
    محل زندگی
    No Where
    سن
    39
    پست
    602
    سلام دوستان
    الان در حال آماده کردن یک Tuotrial هستم با موضوعی که مطرح کردم تا الان که 5 صفحه شده انشالله تا شنبه یه چندتایی رو آماده می کنم و بعد میزارم توی سایت.

  6. #6
    کاربر دائمی آواتار Bahmany
    تاریخ عضویت
    آبان 1384
    محل زندگی
    No Where
    سن
    39
    پست
    602
    خوب فکر کنم از مطالب بالا مطالب خیلی خیلی مقدماتی رو فراگرفتید. و الان خوشبختانه IDE ( Netbeans 5.5 ) دارم و بهتر توضیح خواهم داد

    مراحل زیر را به دقت دنبال کنید :
    1- از منوی File – New Project را انتخاب کنید
    2- از ویزارد New Project و قسمت Categories گزینه Web‌را انتخاب کنید و سپس گزینه Web Application را از قسمت Projects انتخاب کنید و سپس Next را بزنید.ژ
    3- در صفحه Name and Location‌نام پروژتان را RegistrationTest بگذارید و Next را بزنید.
    4- در صفحه Frameworks گزینه Struts 1.2.9 را انتخاب کنید و بعد Add Struts TLDs را انتخاب و Finish را کلیک کنید.
    5- خوب ویزارد برای شما یک سری صفحات رو می سازه که همکنون همه آنها را باید پاک کنید
    5-1- از پالت Projects فایل های index.jsp , welcomeStructs.jsp را حذف کنید.
    5-2-WEB-INF را باز کنید و struts-config.xml را پیدا کرده و آن را باز کنید. و خط های زیر را پیدا و پاک کنید.
    <forward name="welcome" path="/Welcome.do"/>
    <action path="/Welcome" forward="/welcomeStruts.jsp"/>
    5-3- وارد فایل web.xml شوید و سورس xml آن را بیاورید و سپس وارد تگ زیر شوید و تغییرات را اعمال کنید
    قبل از تغییر:
    <welcome-file-list>
    <welcome-file>
    index.jsp
    </welcome-file>
    </welcome-file-list>
    بعد از تغییر :
    <welcome-file-list>
    <welcome-file>

    </welcome-file>
    </welcome-file-list>
    خوب با این کار تمامی اطلاعات مربوط به فایلهایی که خود Wizard‌ساخته بود حذف کردیم و عملا آنها را از پروژه خارج کردیم.
    6- Ctrl+N را بزنید از منوی ظاهر شده در قسمت File Types گزینه Struts Action را انتخاب کنید و Next را بزنید.
    7- نام کلاس را RegistrationAction بگذارید و Package را باز کرده و اولین (com.myapp.struts)Package را برای این مورد انتخاب کنید و در ActionPath گزینه /RegistrationAction را انتخاب کنید و Finish را بزنید.
    8- Ctrl+N را بزنید از منوی ظاهر شده در قسمت File Types گزینه Struts ActionForm Bean را انتخاب کنید و Next را بزنید.
    9- نام کلاس را RegistrationActionForm بگذارید و Finish را بفشارید.
    10- Ctrl+N را بزنید و JSP را انتخاب و Next را بزنید.
    11- نام صفحه را RegistrationPage را بگذارید و Finish را بزنید.
    12- Ctrl+N را بزنید و JSP را انتخاب و Next را بزنید.
    13- نام صفحه را RegistrationSuccessPage را بگذارید و Finish را بزنید.
    تا این قسمت مرحله تمامی فایل های مورد نیاز را ساختیم.
    و حالا تغییرات را شروع می کنیم. حالا شما بگید از کدوم فایل شروع کنیم من که از RegistrationPage شروع می کنم.

    14- از پالت Projects‌ فایل RegistratioPage.jsp را انتخاب کنید و تمامی کدهای داخل آن را به کدهای زیر تغییر دهید :

    <%@page contentType="text/html"%>
    <%@page pageEncoding="UTF-8"%>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Bahmany's Tutorial for Barnamenevis.org</title>
    </head>
    <body>
    <h1>Registration Page</h1>
    <table border="0">
    <form action=" GetTheseInfo.do">
    <thead>
    <tr>
    <th>Name :</th>
    <th><input type="text" name="name" value="" /></th>
    </tr>
    </thead>
    <tbody>
    <tr>
    <td>Family :</td>
    <td><input type="text" name="family" value="" /></td>
    </tr>
    <tr>
    <td>Phone Number :</td>
    <td><input type="text" name="phonenumber" value="" /></td>
    </tr>
    <tr>
    <td>Postal Code :</td>
    <td><input type="text" name="postalcode" value="" /></td>
    </tr>
    <tr>
    <td>ID :</td>
    <td><input type="text" name="id" value="" /></td>
    </tr>
    <tr>
    <td>Password</td>
    <td><input type="password" name="password" value="" /></td>
    </tr>
    <tr>
    <td><input type="submit" name="sub"></td>
    <td><input type="reset" name="reset"></td>
    </tr>
    </tbody>
    </form>
    </table>
    </body>
    </html>
    خوب کار طراحی فرم ثبت نام به پایان رسید
    15- از پالت Projects وارد Source Package - com.myapp.struts – RegistrationActionForm.java شوید متدهای setter و getter را تنظیم کنید
    متدهای getter, setter این متدها متدهایی هستند کار دریافت اطلاعات و نوشتن اطلاعات را بر عهده دارند.
    16- سورس فایل باز شده را به کدهای زیر تغییر دهید:

    package com.myapp.struts;
    import javax.servlet.http.HttpServletRequest;
    import org.apache.struts.action.ActionErrors;
    import org.apache.struts.action.ActionMapping;
    import org.apache.struts.action.ActionMessage;

    public class RegistrationActionForm extends org.apache.struts.action.ActionForm {
    // توجه کنید متغیرهای زیر باید بصورت Private تعریف شوند
    private String name;
    private String family;
    private String phonenumber;
    private String postalcode;
    private String id;
    private String password;
    private String message;


    // متدهای getter
    public String getname(){
    return name;
    }
    public String getfamily(){
    return family;
    }
    public String getphonenumber(){
    return phonenumber;
    }
    public String getpostalcode(){
    return postalcode;
    }
    public String getid(){
    return id;
    }
    public String getpassowrd(){
    return password;
    }
    public String getMessage(){
    return message;
    }

    // متدهای setter
    public void setname(String name){
    this.name = name;
    }
    public void setfamily(String family){
    this.family = family;
    }
    public void setphonenumber(String phonenumber){
    this.phonenumber = phonenumber;
    }
    public void setpostalcode(String postalcode){
    this.postalcode = postalcode;
    }
    public void setid(){
    this.id = id;
    }
    public void setpassowrd(String password){
    this.password = password;
    }
    public void setMessage(String message){
    this.message = message; // برای نمایش پیغام نهایی برای آخرین صفحه
    }

    }
    17- داخل فایل RegistrationAction.java شوید و کدهای زیر را جایگزین کدهای داخل آن کنید.

    package com.myapp.struts;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import org.apache.struts.action.Action;
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionMapping;
    import org.apache.struts.action.ActionForward;

    public class RegistrationAction extends Action {

    private final static String SUCCESS = "success";
    public ActionForward execute(ActionMapping mapping, ActionForm form,
    HttpServletRequest request, HttpServletResponse response)
    throws Exception {
    RegistrationActionForm regfrm = (RegistrationActionForm) form;

    // connect to DB and add informations.

    regfrm.setMessage("Data has updated .... ;) ");

    return mapping.findForward(SUCCESS);
    }
    }


    18- وارد فایل RegistrationActionForm.java شوید و سورس زیر را جایگزین کنید


    <%@page contentType="text/html"%>
    <%@page pageEncoding="UTF-8"%>

    <%@taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%>


    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">

    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Dedicated to Barnamenevis.org by Bahmany</title>
    </head>
    <body>

    <h1>Registration Result</h1>
    <h2><bean:write name="RegistrationActionForm" property="message"/></h2>
    </body>
    </html>
    19- وارد فایل struts-config.xml شوید و سورس زیر را جایگزین کنید

    <?xml version="1.0" encoding="UTF-8" ?>

    <!DOCTYPE struts-config PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"
    "http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd">


    <struts-config>
    <form-beans>
    <form-bean name="RegistrationActionForm" type="com.myapp.struts.RegistrationActionForm"/>
    </form-beans>
    <action-mappings>
    <action path="/GetTheseInfo" type="com.myapp.struts.RegistrationAction" name="RegistrationActionForm">
    <forward name="success" path="/RegistratioSuccessPage.jsp"/>
    </action>

    </action-mappings>

    <controller processorClass="org.apache.struts.tiles.TilesReque stProcessor"/>

    <message-resources parameter="com/myapp/struts/ApplicationResource"/>
    <plug-in className="org.apache.struts.tiles.TilesPlugin" >
    <set-property property="definitions-config" value="/WEB-INF/tiles-defs.xml" />
    <set-property property="moduleAware" value="true" />
    </plug-in>

    <!-- ========================= Validator plugin ================================= -->
    <plug-in className="org.apache.struts.validator.ValidatorPl ugIn">
    <set-property
    property="pathnames"
    value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml"/>
    </plug-in>

    </struts-config>
    در ضمن هرجای سورس رو متوجه نشدید بگید تا توضیح بدم

    منتظر برنامه بعدی نیز باشید تا یکی دو روز آینده آماده می کنم و تو سایت Upload خواهم کرد.

  7. #7
    کاربر دائمی آواتار Bahmany
    تاریخ عضویت
    آبان 1384
    محل زندگی
    No Where
    سن
    39
    پست
    602
    معرفی Tag Library ها :
    خوب دوستان
    4- در صفحه Frameworks گزینه Struts 1.2.9 را انتخاب کنید و بعد Add Struts TLDs را انتخاب و Finish را کلیک کنی
    بعدش به این کد در مرحله 18 توجه کنید
    <%@taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%>

    و بازهم بعدش به این کد در همان مرحله 18 توجه کنید :
    <h2><bean:write name="RegistrationActionForm" property="message"/></h2>

    خوب بحث ما سر همین bean:write است
    این تگ با توجه به مسیری که در تک taglib معرفی شده تعریف شده است یعنی تگ taglib کتابخانه هایی از تگ های مجاز برای استفاده در صفحات مورد استفاده در JSP ( در این مثال ) را معرفی می کند.
    این فایلها با پسوند tld معروف هستند و دارای مجموعه ای از tag های مجاز در صفحات jsp هستند.
    اگر شما Netbeans استفاده می کنید با انتخاب مرحله 4 می توانید فایلهای مورد نظر را بصورت اتوماتیک در پوشه WEB-INF داشته باشید در غیر اینصورت این فایل ها را می بایست پیدا کرده و در مسیر پروژه خود قرار دهید
    معروفترین tld ها در زیر به شما معرفی شده اند که گفتم همراه با Struts و همینطور Netbeans وارد کامپیوترتان میشه و شما می تونید اون رو به پروژه تون منتقل کنید:

    struts-html.tld tag library : used for creating dynamic HTML user interfaces and forms.
    struts-bean.tld tag library : provides substantial enhancements to the basic capability provided by.
    struts-logic.tld tag library : can manage conditional generation of output text, looping over object collections for repetitive generation of output text, and application flow management.
    struts-template.tld tag library : contains tags that are useful in creating dynamic JSP templates for pages which share a common format.

    دوستانی که تعریف بهتری دارند لطفا ارائه بدن.

  8. #8
    کاربر دائمی آواتار Bahmany
    تاریخ عضویت
    آبان 1384
    محل زندگی
    No Where
    سن
    39
    پست
    602
    دستورات ارسالی بوسیله مرورگر Commands.do


    به مرحله 14 توجه کنید :
    <form action=" GetTheseInfo.do">

    با فرستادن اطلاعات قرار گرفته در این فرم تحت نام GetTheseInfo.do بوسیله فایل struts-config.xml متوجه می شود که آن را باید به کدام Action بست دهد
    مرحله 19 را دقت کنید :
    <action path="/GetTheseInfo" type="com.myapp.struts.RegistrationAction" name="RegistrationActionForm">
    <forward name="success" path="/RegistratioSuccessPage.jsp"/>
    </action>


    توجه داشته باشید فقط دستوراتی که به پسوند do وارد می شوند پاسخ داده می شوند.
    در قسمت type نام کلاس دریافت کننده دستور قرار گرفته است و از این طریق سیستم می فهمد که داده های ارسالی از طریق دستور GetTheseIndo می بایست تحویل کلاس RegistrationAction شود سپس کلاس RegistrationAction کار بروی داده های ارسالی را شروع می کند

  9. #9
    کاربر دائمی آواتار Bahmany
    تاریخ عضویت
    آبان 1384
    محل زندگی
    No Where
    سن
    39
    پست
    602
    متدهای getter و setter :
    این متود ها همنطور که از اسمشون معلوم هست کار گرفتن اطلاعات و گذاشتن اطلاعات را برعهده دارند.
    اگر به مرحله 16 توجه کنید خواهید دید که یکسری از توابع با set و یکسری از توابع با get شروع می شوند.
    private String name;
    private String family;
    private String phonenumber;
    private String postalcode;
    private String id;
    private String password;
    private String message

    این متغیر هایی که بصورت private‌تعریف شده اند بوسیله struts‌به فرم input های کار شده در JSP تعمیم می شوند و تابع مثلا getFamily() نام وارد شده در آن Input رو برمی گرداند و همینطور تابع Setfamily در اون می نویسه .


  10. #10
    کاربر دائمی آواتار Bahmany
    تاریخ عضویت
    آبان 1384
    محل زندگی
    No Where
    سن
    39
    پست
    602
    سلام دوستان
    متاسفانه مدتی بعلت مشغله کاری نتوانستم مطلب را ادامه بدهم
    انشاا.. در پست بعدی نحوه پیاده سازی وب سایت های چند زبانه در Struts رو می خواهم در سایت قرار دهم.
    و بعدش هم کنترل خطا رو بصورت کامل و مفصل
    اگر از دوستان کسی هستش که بتونه به بنده کمک کنه خوشحال خواهم شد یا اگر در مطالب بالا مشکلی هست بگید تا مباحثه کنیم.

  11. #11
    نقل قول نوشته شده توسط Bahmany مشاهده تاپیک
    سلام دوستان
    اگر از دوستان کسی هستش که بتونه به بنده کمک کنه خوشحال خواهم شد یا اگر در مطالب بالا مشکلی هست بگید تا مباحثه کنیم.
    سلام
    ممنون از مطلب خوبتون من که خوندمش و پیگیری می کنم ولی چون خودم بصورت عملی با Struts کار نمی کنم و از Framework های دیگه استفاده می کنم تسلطی ندارم که بتونم بحثی در موردش بکنم .
    ولی خیلی به اطلاعاتم اضافه کرد .

  12. #12
    کاربر دائمی آواتار Bahmany
    تاریخ عضویت
    آبان 1384
    محل زندگی
    No Where
    سن
    39
    پست
    602

    Multilanguage

    سلام دوستان
    بدون مقدمه می رم سر اصل مطلب.
    اصلی ترین کلاس برای پیاده سازی برنامه های چند زبانی در جاوا استفاده از شی Locale است.

    Locale locale = new Locale("fa");

    خوب تابلوست دیگه Locale زیر مشخص کننده زبان فارسی است.
    از طریق بالا شما می تونید خودتون مقدار دهی زبان رو داشته باشید ولی یک راه دیگه بدست آوردن نوع زبان از Browser وجود داره که اون رو از طریق HTTP Header با نام Accept-Language ارسال می کنه:

    Locale requestedLocale = request.getLocale();

    خوب اینطوری می تونید بفهمید که کاربر(Browser) از چه زبانی استفاده می کنه.

    محتویات صفحاتی که می خواهید به زبانهای مختلف نشان داده شود را باید در فایل های .properties وارد نمائید.
    برای ساخت فایل های .properties می بایست در محیط Neatbeans 5.5 کلید Ctrl+N را بزنید سپس کاتالوگ Other را انتخاب و سپس در قسمت File Types گزینه Properties File رو انتخاب کنید. و سپس Next و یک نام دلخواه داده مثلا fa یا en بسته به نوع زبانی که خواستار طراحی آن هستید و سپس Finish را بزنید.
    خوب بریم سراغ دو Tutorial :
    خوب یک پروژه درست کنید (همونی که توی اولین پست خدمتون عرض کردم)
    دو تا فایل .properties‌با نام های en , fa درست کنید (en.properties , fa.properties)
    خوب اطلاعات زیر را داخلشون وارد کنید

    ApplicationResources_fa.properites :
    reg.name = نام
    reg.family = نام خانوادگی
    reg.id = کد

    ApplicationResources.properties:
    reg.name = name
    reg.family = family
    reg.id = ID code



    خوب حالا هر فایل Jsp‌ی که دلتون می خواد درست کنید و سپس کد زیر را وارد کنید:
    <table border="1">
    <form action="GetTheseInfo.do" method="POST">
    <thead>
    <tr>
    <th><bean:message key="reg.name"/></th>
    <th><input type="text" name="name" value="" /></th>
    </tr>
    </thead>
    <tbody>
    <tr>
    <td><bean:message key="reg.family"/></td>
    <td><input type="text" name="family" value="" /></td>
    </tr>
    <tr>
    <td><bean:message key="reg.id"/></td>
    <td><input type="text" name="IDcode" value="" /></td>
    </tr>
    <tr>
    <td><input type="submit" value="Send" /></td>
    <td><input type="reset" value="Cancel" /></td>
    </tr>
    </tbody>
    </form>
    </table>


    به اون هایی که bold‌ شدن توجه کنید و خصیصه key رو هم در نظر بگیرید.
    برای دسترسی به کلید هایی که در فایل های .properties معرفی کرده ایم می بایست از تگ bean:message استفاده کنیم و در خصیصه key نیز نام کلیدی که می خواهیم بروی صفحه نوشته شود را می آوریم.
    خوب و اما چگونه زبان را تعیین کنیم ؟؟؟؟!!!
    برای تعیین زبان می بایست از یک Action‌استفاده کرد.
    یک Action‌ بنام ChangeLanguage‌ساخته و اطلاعات زیر را وارد کنید:


    package com.myapp.struts;

    import java.util.Locale;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;

    import org.apache.struts.action.Action;
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionMapping;
    import org.apache.struts.action.ActionForward;

    public class ChangeLangAction extends Action {


    public ActionForward execute(ActionMapping mapping, ActionForm form,
    HttpServletRequest request, HttpServletResponse response)
    throws Exception {
    String selectedLang = "en" ;
    String language = request.getParameter("lang");
    if ((language != null) && language.equalsIgnoreCase("fa")) {
    selectedLang = "fa";
    }
    Locale locale = new Locale(selectedLang);
    setLocale(request, locale);
    return mapping.findForward("mainPage");

    }
    }


    وارد فایل struts-config‌ شوید و کد زیر را در قسمت action-mappings وارد کنید

    <action path="/changeLocale" type="com.myapp.struts.ChangeLangAction">
    <forward name="mainPage" path="/RegistrationForm.jsp"/>
    </action>


    و حالا برای فرستادن دستور تغییر زبان به دو دکمه یا لینک در فایل Jsp مورد نظری که ساخته ایم نیاز دازیم.

    <a href="changeLocale.do?lang=fa">Farsi</a>
    <a href="changeLocale.do?lang=en">English</a>


    و سپس این خط را نیز فایل struts-config اضافه کنید:

    <message-resources parameter="com/myapp/struts/ApplicationResources"/>

    اگر این خط وجود داشت دست بهش نزنید.

    خوب تموم شد.
    حالا این رو داشته باشید تا دربارش بیشتر صحبت کنیم.

  13. #13
    کاربر جدید آواتار MLD_MLA
    تاریخ عضویت
    خرداد 1390
    محل زندگی
    تهران
    پست
    6

    نقل قول: Multilanguage

    داداش با این شکلک های بی معنی که گذاشتی خودتو لو دادی که پستهای قسمت اول رو عینا از جایی کپی کردی
    ولی مطالبت بد نی
    ممنون

  14. #14
    کاربر جدید
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    تهران
    سن
    40
    پست
    10

    نقل قول: Struts

    مطالبتون خیلی خوب بود.کاش ادامه میدادین.
    راستش من دنبال یک کتاب برای یادگیری حرفه ای struts2 هستم.فارسی یا انگلیسی بودنش هم برام فرقی نمیکنه.کاش دوستان کمک کنند.
    فعلاٌ هم توی ارتباط با DataBase گیر کردم.ممنون میشم بشه دوباره این تاپیک فعال بشه.

  15. #15

    نقل قول: Multilanguage

    نقل قول نوشته شده توسط MLD_MLA مشاهده تاپیک
    داداش با این شکلک های بی معنی که گذاشتی خودتو لو دادی که پستهای قسمت اول رو عینا از جایی کپی کردی
    ولی مطالبت بد نی
    ممنون
    سلام
    کتاب رو از لینکی که داده شده دانلود کردم. اون قسمت که نام آقای بهمنی در کدشون نوشته شده در کتاب هم هست. این یعنی احتمالا اون کتاب یا توسط خود ایشون نوشته شده یا نگارنده از کد ایشون استفاده کرده.

  16. #16
    کاربر دائمی آواتار Bahmany
    تاریخ عضویت
    آبان 1384
    محل زندگی
    No Where
    سن
    39
    پست
    602
    ممنون از مطلب خوبتون من که خوندمش و پیگیری می کنم ولی چون خودم بصورت عملی با Struts کار نمی کنم و از Framework های دیگه استفاده می کنم تسلطی ندارم که بتونم بحثی در موردش بکنم .
    ولی خیلی به اطلاعاتم اضافه کرد .
    ممنونم سعید جان متاسفانه بنده از همون اول با struts کار کردم و JSF رو خیلی کم کار کردم و هیچ تجربه ای هم ندارم به خاطر همین هم در مبحثی که درباره JSF مطرح کردی نتونستم شرکت کنم.

    بای

  17. #17
    کاربر دائمی آواتار Bahmany
    تاریخ عضویت
    آبان 1384
    محل زندگی
    No Where
    سن
    39
    پست
    602

    Handling Exception in Struts

    Handling Exception in Struts
    قسمت اول

    public ActionForward execute(ActionMapping mapping, ActionForm form,
    HttpServletRequest request, HttpServletResponse response)
    throws Exception {
    try{
    // connect to DB and do some actions
    }catch(Exception e){
    // after error this part executed
    return mapping.findForward("ErrorPage");
    }
    return mapping.findForward("GotoHomepage");

    }
    }
    دوستان معمولا نحوه کنترل خطا در جاوا معمولا به صورت بالا است و همه از این روش برای کنترل خطا استفاده می کنند.
    در برنامه هایی که با Struts می نویسید استفاده از روش بالا به هیچ وجه توصیه نمی شود ، چون باعث می شود کدهای کنترل خطا با کدهای معمولی برنامه قاطی پاتی شود.
    <exception type="ExceptionClass" key="keyMessage" path="ExceptionPage"/>
    بیشتر مواقع ما دوست داریم با ایجاد خطا بدون عملیات خاصی صفحه خطا به کاربر نشان داده شود پیاده سازی این شیوه که جناب احمدرضا صدیقی نویسنده کتاب J2EE که مفصل درباره Struts صحبت کرده اند ، آن را روش ساده نامگذاری کرده اند بسیار ساده است.
    همانطور در کد بالایی مشاهده می کنید exceptions یکی از اجزای داخلی Action در داخل فایلStruts-config.xml قابل تعریف می باشد.
    ExceptionClass : مشخص کننده نام کامل کلاس خطای تولید شده است.
    KeyMessage : مشخص کننده پیغام خطایی می باشد که در صفحه نشان داده خواهد شد و در فایل های ApplicationResources تعریف می شود.
    ExceptionPage : مشخص کننده صفحه خطایی است که به کاربر نشان داده خواهد شد.


              <action input="/RegistrationForm.jsp"  path="/GetTheseInfo" scope="session" type="com.myapp.struts.RegistrationAction">  
    <forward name="success" path="/OK.jsp"/>
    <exception type="java.sql.SQLException" key="error.sql" path="/exception.jsp" />
    </action>
    این خط رو داشته باشید تا پست بعدی بیشتر به این مسئله بپردازیم.
    راستش می خوام exception ها رو تموم کنیم و بعدش بپردازم به Validator ها.

  18. #18
    کاربر جدید آواتار Apache's Boy
    تاریخ عضویت
    خرداد 1387
    محل زندگی
    هنوز مسافرم
    پست
    12

    نقل قول: Struts

    جناب بهمنی واقعا ممنونم ، خیلی کمک کردید

  19. #19
    کاربر جدید
    تاریخ عضویت
    مهر 1385
    محل زندگی
    تبریز
    پست
    26

    نقل قول: Struts

    دوست عزیز ضمن تشکر از شما
    ایکاش مطالب آموزشیتو نو با struts 2 شروع میکردین چون این ورژن که شما دارین ادامه میدین دیگه تقریبا از رده خارج حساب میشه
    باز هم از کار ارزشمندتون تشکر میکنم

  20. #20

    نقل قول: Struts

    سلام
    اول بگم که این آقای بهمنی شاید با من یه نسبتی داشته باشن چون من هم بهمنی هستم
    بگذریم
    این صحبت هایی که شده من pdf این رو دارم! 205 صفحه هستش و از اول جاوا شروع کرده!
    آخرش هم struts رو داره میگه . من خودم تازه شروع کردم و هنوز گیجم که کتابخانش کجاست و چجوری ادد میشه( آخه قبلا jdeveloper کار میکردم الان netbeans ریختم ورژن 6.8)
    فایل رو براتون آپلود می کنم
    http://alpachino2.persiangig.com/javalearn.rar

  21. #21

    نقل قول: Struts

    بنظر میرسه در این قسمت مشکلی هست:
    15- از پالت Projects وارد Source Package - com.myapp.struts – RegistrationActionForm.java شوید متدهای setter و getter را تنظیم کنید
    متدهای getter, setter این متدها متدهایی هستند کار دریافت اطلاعات و نوشتن اطلاعات را بر عهده دارند.
    18- وارد فایل RegistrationActionForm.java شوید و سورس زیر را جایگزین کنید
    قدم به قدم اجرا کردم. احتمال میدم سورس شماره 18 متعلق به RegistrationSuccessPage.jsp باشه. اگه آقای بهمنی یا دوست دیگری این قسمت رو درستش کنه در اجرا مشکلی نخواهدبود.

تاپیک های مشابه

  1. تفاوت های بین Struts و JSF .
    نوشته شده توسط saeed_Z_F در بخش برنامه‌نویسی جاوا
    پاسخ: 0
    آخرین پست: شنبه 05 آبان 1386, 17:05 عصر
  2. ایجاد subdomain با struts
    نوشته شده توسط Monster در بخش Java EE : نگارش سازمانی جاوا
    پاسخ: 0
    آخرین پست: چهارشنبه 04 بهمن 1385, 13:58 عصر
  3. Struts FrameWork
    نوشته شده توسط mona3000m در بخش Java EE : نگارش سازمانی جاوا
    پاسخ: 1
    آخرین پست: سه شنبه 25 مهر 1385, 12:01 عصر
  4. مروری بر قالب کاری Struts
    نوشته شده توسط persianshadow در بخش برنامه‌نویسی جاوا
    پاسخ: 0
    آخرین پست: شنبه 22 مهر 1385, 19:58 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •