English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

واجهة نموذج Spring MVC

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

يحتاج إلى تضمين Model وضع الواجهة في جزء التحكم في الحاسوب. التطبيق. HttpServletRequest سيقرأ المعلومات المقدمة من المستخدم ويقوم بتوصيلها إلى Model الواجهة. الآن، يمكن الوصول بسهولة إلى بيانات قطع النموذج من صفحة الرؤية.

طريقة واجهة النموذج

طريقةشرح
Model addAllAttributes(Collection <?> arg)سيضيف جميع الخصائص الموجودة في المجموعة المقدمة إلى هذا Map.
Model addAllAttributes(Map <String,?> arg)سيضيف جميع الخصائص الموجودة في Map المقدم إلى هذا Map.
Model addAllAttribute(Object arg)سيضيف الخاصية المقدمة باستخدام الاسم المولد إلى هذا Map.
Model addAllAttribute(String arg0, Object arg1)سيقوم بربط الخاصية بالاسم المقدم.
Map<String, Object> asMap()سيقوم بتحويل مجموعة الخصائص الحالية للنموذج إلى Map.
Model mergeAttributes(Map<String,?> arg)سيضيف جميع الخصائص الموجودة في Map المضافة إلى هذا Map، مع الإفضلية للعناصر الحالية بنفس الاسم.
boolean containsAttribute(String arg)يحدد هذا النموذج ما إذا كان يحتوي على الخاصية المحددة باسمها

مثال نموذج Spring MVC

ننشئ صفحة تسجيل الدخول تحتوي على اسم المستخدم وكلمة المرور. هنا، نستخدم القيم المحددة للتحقق من كلمة المرور.

1- إضافة الاعتماد إلى pom.xml

    <!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc</artifactId>
    <version>5.1.1.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
<dependency>  
    <groupId>javax.servlet</groupId>  
    <artifactId>servlet-api</artifactId>  
    <version>3.0-alpha-1</version>  
</dependency>

2- إنشاء صفحة الطلب

في هذا المكان، ننشئ صفحة تسجيل الدخول لاستقبال اسم المستخدم وكلمة المرور.

index.jsp

<html>
<body>
<form action="hello">
اسم المستخدم: <input type="text" name="name"/> <br><br>
كلمة المرور: <input type="text" name="pass"/> <br><br> 
<input type="submit" name="submit">
</form>
</body>
</html>

3- إنشاء فئة التحكم

في فئة التحكم:

HttpServletRequest للقراءة بيانات النموذج HTML التي يقدمها المستخدم. نموذجيتضمن بيانات الطلب وتقدمها للصفحة للعرض.

HelloController.java

package com.w3codebox;
import javax.servlet.http.HttpServletRequest;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class HelloController {
  @RequestMapping("/hello")
  public String display(HttpServletRequest req, Model m)
  {
    //قراءة البيانات المقدمة من النموذج
    String name=req.getParameter("name");
    String pass=req.getParameter("pass");
    if(pass.equals("admin"))
    {
      String msg="Hello " + name;
      //أضف رسالة إلى النموذج
      m.addAttribute("message", msg);
      return "viewpage";
    }
    else
    {
      String msg="Sorry " + name + ". لقد أدخلت كلمة المرور غير صحيحة";
      m.addAttribute("message", msg);
      return "errorpage";
    } 
  }
}

4、في ملف web.xml تقدم مدخل التحكم

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>SpringMVC</display-name>
   <servlet>  
    <servlet-name>spring</servlet-name>  
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  
    <load-on-startup>1</load-on-startup>    
</servlet>  
<servlet-mapping>  
    <servlet-name>spring</servlet-name>  
    <url-pattern>/</url-pattern>  
</servlet-mapping>  
</web-app>

5- تعريف Bean في ملف xml

spring-servlet.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  xmlns:context="http://www.springframework.org/schema/context"
  xmlns:mvc="http://www.springframework.org/schema/mvc"
  xsi:schemaLocation="
    http://www.springframework.org/schema/beans
      http://www.springframework.org/schema/beans/spring-beans.xsd
      http://www.springframework.org/schema/context
      http://www.springframework.org/schema/context/spring-context.xsd
      http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc.xsd">
  <-- توفير الدعم لدعم التحقق من المكونات -->
  <context:component-scan base-package="com.w3codebox" />
  <!--توفير الدعم للتحويل، التنسيق والتحقق-->
  <mvc:annotation-driven/>
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/jsp/"></property>
        <property name="suffix" value=".jsp"></property>        
     </bean>
</beans>

6. إنشاء مكونات الرؤى الأخرى

لإطلاق هذا المثال، يجب أن تكون المكونات التالية من الرؤى موجودة في مجلد WEB-INF/jsp.

viewpage.jsp

<html>
<body>
${message}
</body>
</html>

errorpage.jsp

<html>
<body>
${message}
<br><br>
<jsp:include page="/index.jsp"></jsp:include>
</body>
</html>

الإخراج: