سؤال

مؤخرا أنا ذاهب من خلال واحدة البرنامج التعليمي Struts2 واجهة المستخدم العلامات.لقد وجدت هذا المثال وتنفيذه مع الكمال.

ولكن في struts.xml تكوين الملف لم أستطع فهم بعض OGNL التعبيرات.أن أكتب هنا :

<struts>
    <package name="default" extends="struts-default">
        <action name="*Register" method="{1}" class="nirmal.RegisterAction">
            <result name="populate">/register.jsp</result>
            <result name="input">/register.jsp</result>
            <result name="success">/success.jsp</result>
        </action>        

    </package>
</struts>

أنا هنا ملء طلب واحد في populateRegier من مؤشر.jsp, لذلك هو إعادة توجيه إلى RegisterAction.java وتنفيذ ملء() طريقة صفي ، أيعلى النحو التالي :

RegisterAction.java

package nirmal;

import java.util.ArrayList;

import com.opensymphony.xwork2.ActionSupport;

public class RegisterAction extends ActionSupport {

    private String userName;
    private String password;
    private String gender;
    private String about;
    private String country;
    private ArrayList<Country> countryList;
    private String[] community;
    private ArrayList<String> communityList;
    private Boolean  mailingList;

    public String populate() {

        countryList = new ArrayList<Country>();
        countryList.add(new Country(1, "India"));
        countryList.add(new Country(2, "USA"));
        countryList.add(new Country(3, "France"));

        communityList = new ArrayList<String>();
        communityList.add("Java");
        communityList.add(".Net");
        communityList.add("SOA");

        community = new String[]{"Java",".Net"};
        mailingList = true;

        return "populate";
    }
    public String execute() {
        return SUCCESS;
    }
    public String getUserName() {
        return userName;
    }
    public void setUserName(String userName) {
        this.userName = userName;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    public String getGender() {
        return gender;
    }
    public void setGender(String gender) {
        this.gender = gender;
    }
    public String getAbout() {
        return about;
    }
    public void setAbout(String about) {
        this.about = about;
    }
    public String getCountry() {
        return country;
    }
    public void setCountry(String country) {
        this.country = country;
    }
    public ArrayList<Country> getCountryList() {
        return countryList;
    }
    public void setCountryList(ArrayList<Country> countryList) {
        this.countryList = countryList;
    }
    public String[] getCommunity() {
        return community;
    }
    public void setCommunity(String[] community) {
        this.community = community;
    }
    public ArrayList<String> getCommunityList() {
        return communityList;
    }
    public void setCommunityList(ArrayList<String> communityList) {
        this.communityList = communityList;
    }
    public Boolean getMailingList() {
        return mailingList;
    }
    public void setMailingList(Boolean mailingList) {
        this.mailingList = mailingList;
    }
}

السؤال الأول : لا أستطيع أن أفهم لماذا هو exeucting تعبئة (طريقة) هنا ؟

السؤال الثاني : ما هو معنى method="{1}" في struts2.xml ?

شكرا مقدما...

هل كانت مفيدة؟

المحلول

2 الأسئلة بنفس الإجابة.إذا نظرتم إلى هذا الخط في الدعامات التكوين:

<action name="*Register" method="{1}" class="nirmal.RegisterAction">

ستلاحظ * * * * * ، {1}.ما الدعامات تقوم به هو اتخاذ الخاص بك populateRegister طلب إجراء مباراة البدل على ما سبق <action>.

فإنه يأخذ البدل المطابق جزء (ملء) و يستخدم هذا الأسلوب اسم (يستبدل {1} مع ملء).هذا هو ما يسبب ملء() طريقة الاستشهاد في نيرمال.RegisterAction الدرجة.

إذا أردت أن تحتج تنفيذ (طريقة) في نفس الفئة ، يمكنك إرسال رسالة executeRegister الطلب.هناك مزيد من المعلومات حول البدل تعيينات على الدعامات الموقع.شخصيا لقد وجدت لها أن تكون مفيدة جدا لحفظ التكوين نظيفة.

نصائح أخرى

يتم استدعاء الطريقة

populate لأنك تحتاج إلى بعض البيانات التي سيتم ملؤها تلقائيا والتي تساعد المستخدمين على تحديدها أو عرضها، فإنها تساعدك في اختيارك الافتراضي أيضا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top