سؤال

في كل مكان أنظر دائمًا يظهر نفس التفسير.
تكوين محلل العرض.

<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" />

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