سؤال

إذا قمت بوضع كائن يدعى "foo" في نموذج في وحدة تحكم الربيع، وتريد الحد من نطاقه، كيف يمكنني القيام بذلك.

دعنا نقول أن لدي صفحة تستخدم علامة JSP التي تأخذ كمعلمة "foo". إذا استدعيت العلامة داخل JSP، مثل <tag foo="${bar}" />, ، يبدو لي أن النموذج "foo" يتداخل مع "bar".

أو حتى لو لم يكن كذلك، إذا كنت ترغب فقط في الحد من نطاق النموذج "FOO" لتكون متاحة فقط في صفحة JSP، وليس في غيرها (إما في صفحة "ED أو في علامة صفحة JSP أولا.)

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

المحلول

أساسا لا يمكنك تقييد النطاق. الطريقة الوحيدة لتمرير الكائنات من وحدة تحكم إلى العرض هي عن طريق سمات نطاق الطلب.

إذا كان لديك الكثير من المشاهدات / وحدات التحكم المختلفة لصفحة واحدة، فقد ترغب في الحصول على اتفاقية تسمية لسمات طلبك، شيء مثل اسم الفصل في وحدة التحكم. المشكلة الوحيدة هي أن الوصول إليها ليست نظيفة جدا

${requestScope['com.your.app.Controller.RESULT']}

واحد ممكن هو استخدام لإنشاء إصدارات نطاق الصفحة من المتغيرات:

<c:set var='result' value="${requestScope['com.your.app.Controller.RESULT']}"/>
...
${result}

في مثالك، لست متأكدا من أن أقول إن "FOO" تتداخل مع "Bar" يبدو أنك تعاني من الشريط إلى العلامة كمعلمة؟

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