إنشاء عناوين المواقع الصديقة إلى الموارد الحيوية في struts2

StackOverflow https://stackoverflow.com/questions/226721

  •  03-07-2019
  •  | 
  •  

سؤال

لدي struts2 التطبيق مع صفحة واحدة التي قد تظهر واحدة من عدد من القيم المخزنة في قاعدة البيانات.التطبيق المدرسة مع العديد من الأقسام وكل قسم لديه العديد من البرامج.إدارة الصفحة هو الوصول إليها باستخدام رابط مثل هذا

department.action?id=2

و DepartmentAction تحميل الإدارة مع id = 2 للعرض.كل هذا على ما يرام إذا كان المستخدم هو مجرد تصفح حول الموقع لكن الأمر غير مريح إذا كنت ترغب في توفير ارتباط إلى قول قسم الهندسة في الصحف.الرابط سيكون www.myschooldomain.com/department.action?id=2.أرى عددا من المشاكل مع هذا.

الأولى أنه ليس من الاستعمال.الثاني, هو عرضة تكون مكسورة لأن الإدارات بشكل حيوي في الحفاظ على الهوية قسم يمكن أن تتغير دون سابق إنذار مما يجعل العلاقة غير مستقرة.

وأود أن تفضل أن الطباعة على رابط مثل هذا:www.myschooldomain.com/department/engineering ويكون ذلك بطريقة أو بأخرى الذهاب إلى قسم.العمل ؟ id=2.

أفكاري حتى الآن:إنشاء إجراء تحليل url اسم القسم في نهاية المطاف ثم البحث عنه بالاسم.ربما يمكنني إضافة friendlyurl الميدانية إلى قاعدة البيانات عن كل قسم.

ولكن السؤال هو:هل هناك طريقة أفضل للقيام بذلك في struts2?

شكرا

تحديث (مايو 2009): أنا مجرد حدث أن تتعثر مرة أخرى على هذا السؤال و فكرت في أن أقول ما لم لحلها.

أنا إنشاء مجموعة جديدة في struts.xml ودعا الإدارات.في هذه الحزمة هناك عمل واحد فقط تعيينها إلى *.لذلك أدرك جميع الطلبات mydomain.com/departments/anything.html.

في العمل الدرجة أنا ببساطة parse url والبحث عن جزء بين الإدارات/ و .html هذا هو اسم القسم حتى يمكنني البحث في قاعدة البيانات من أجل ذلك.هذا وقد يعمل ما يقرب من 5 أشهر من الآن و يجب تنفيذه في مناطق أخرى من الموقع.

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

المحلول

ويتم هذا عادة من خلال رسم خرائط بريمج ، في حالة '/قسم', ثم باستخدام المسار المعلومات (على سبيل المثال ، 'الهندسة') داخل بريمج لتحديد الهوية.

منذ Struts2 المرسل لا تنفذ هذا السلوك قد يكون أبسط الكتابة الخاصة بك بريمج.هذا بريمج سيكون تكوين خريطة صالحة أسماء "ودية" غير ودية معرفات رقمية.يمكن أن يكون هذا حقيقي Map أو يمكن أن يتم ذلك مع قاعدة بيانات الباحث الأسلوب.

نتيجة getPathInfo() ستستخدم للبحث عن الهوية و طلب أن يكون أحالت إلى الإدارة.العمل.التعامل مع null القضية أيضا ، مما يعني أن المستخدم يحاول استعراض /departments/ الدليل.

نصائح أخرى

هل يمكن استخدام إعادة كتابة URL فلتر

هذا يتجنب الحاجة إلى أي بريمج أو كود جافا ولكن يتطلب XML واصفات.

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