كيفية تكوين ResourceBundleViewResolver في Spring Framework 2.0
-
01-07-2019 - |
سؤال
في كل مكان أنظر دائمًا يظهر نفس التفسير.
تكوين محلل العرض.
<bean id="viewMappings"
class="org.springframework.web.servlet.view.ResourceBundleViewResolver">
<property name="basename" value="views" />
</bean>
ثم قم بوضع ملف في مسار الفصل المسمى view.properties مع بعض أزواج القيمة الرئيسية (لا تهتم بالأسماء).
logout.class=org.springframework.web.servlet.view.JstlView
logout.url=WEB-INF/jsp/logout.jsp
ماذا فعلت logout.class
و logout.url
يقصد؟
كيف ResourceBundleViewResolver
يستخدم أزواج القيمة الرئيسية في الملف؟
هدفي هو أنه عندما يدخل شخص ما URI myserver/myapp/logout.htm
الملف logout.jsp
يتم تقديمه.
المحلول
يستخدم ResourceBundleViewResolver المفتاح/vals في طرق العرض.خصائص لإنشاء وحدات العرض (التي تم إنشاؤها بالفعل في سياق تطبيق داخلي).سيكون اسم وحدة العرض في المثال الخاص بك هو "تسجيل الخروج" وستكون وحدة من النوع JstlView.يحتوي JstlView على سمة تسمى URL والتي سيتم تعيينها على "WEB-INF/jsp/logout.jsp".يمكنك تعيين أي سمة في فئة العرض بطريقة مماثلة.
ما يبدو أنك مفقود هو طبقة وحدة التحكم/المعالج.إذا كنت تريد /myapp/logout.htm أن يخدم logout.jsp، فيجب عليك تعيين وحدة تحكم إلى /myapp/logout.htm وتحتاج وحدة التحكم هذه إلى إرجاع اسم العرض "تسجيل الخروج".ستتم بعد ذلك استشارة ResourceBundleViewResolver للحصول على وحدة بهذا الاسم، وإرجاع مثيل JstlView الخاص بك.
نصائح أخرى
للإجابة على سؤالك logout
هو اسم العرض الذي تم الحصول عليه من كائن ModelAndView الذي تم إرجاعه بواسطة وحدة التحكم.إذا كنت تواجه مشكلات، فأنت بحاجة إلى التكوين الإضافي التالي.
تحتاج إلى إضافة تعيين servlet لـ *.htm
في الخاص بك web.xml
:
<web-app> <servlet> <servlet-name>htm</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <oad-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>htm</servlet-name> <url-pattern>*.htm</url-pattern> </servlet-mapping> </web-app>
وإذا كنت تريد التعيين مباشرة إلى *.jsp
بدون إنشاء وحدة تحكم مخصصة، فأنت بحاجة إلى إضافة الفول التالي إلى سياق الربيع الخاص بك:
<bean id="urlFilenameController" class="org.springframework.web.servlet.mvc.UrlFilenameViewController" />