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

مربعات الاختيار في نموذج Spring MVC

يساعد مربعات الاختيار في نموذج Spring MVC في اختيار عدة خيارات في نفس الوقت. تُستخدم هذه العلامة لعرض علامة إدخال HTML من نوع checkbox.

النحو

<form:checkbox path="abc" value="element"/>

بالإضافة إلى علامة مربعات الاختيار، تحتوي مكتبة علامات نموذج Spring MVC أيضًا على مربعات الاختيارالعلامة. تُستخدم هذه العلامة لعرض عدة علامات إدخال HTML تحتوي على مربعات الاختيار. تستخدم هذه العلامة فقط عندما لا تريد عرض جميع العناصر في صفحة العرض. في هذه الحالة، يمكنك تقديم العناصر وتقديمها إلى العلامة. بسبب أن المستخدم يمكن أن يختار عدة خيارات، يجب تقديم Array، List أو Map كنوع العناصر.

النحو

<form:checkboxes path="abc" items="${object.elementList}"/>

مثال على مربعات الاختيار في نموذج 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>
    <!-- https://mvnrepository.com/artifact/javax.servlet/jstl -->
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>jstl</artifactId>
    <version>1.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.tomcat/tomcat-jasper -->
<dependency>
    <groupId>org.apache.tomcat</groupId>
    <artifactId>tomcat-jasper</artifactId>
    <version>9.0.12</version>
</dependency>

2、创建bean类

Reservation.java

package com.w3codebox;
public class Reservation {
    private String firstName;
    private String lastName;
    private String Gender;
    private String[] Food;
    public Reservation()
    {       
    }
    public String getFirstName() {
        return firstName;
    }
    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }
    public String getLastName() {
        return lastName;
    }
    public void setLastName(String lastName) {
        this.lastName = lastName;
    }
    public String getGender() {
        return Gender;
    }
    public void setGender(String gender) {
        Gender = gender;
    }
    public String[] getFood() {
        return Food;
    }
    public void setFood(String[] food) {
        Food = food;
    }       
}

3、创建控制器类

ReservationController.java

package com.w3codebox;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
@RequestMapping("/reservation")
@Controller
public class ReservationController {
    @RequestMapping("/bookingForm")
public String bookingForm(Model model)
{
      //إنشاء جسم حجز جديد 
    Reservation res = new Reservation();
      //تقدم جسم الحجز إلى النموذج 
    model.addAttribute("reservation", res);
    return "reservation-page";
}
@RequestMapping("/submitForm")
public String submitForm(@ModelAttribute("reservation") Reservation res)
{
    return "confirmation-form";
}
}

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/>
    <!-- تعريف معالج الرؤية الخاصة بـ Spring MVC -->
     <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. إنشاء صفحة الطلب

index.jsp

<!DOCTYPE html>
<html>
<head>
    <title>نموذج تسجيل السكك الحديدية</title>
</head>
<body>
<a href="reservation/bookingForm">انقر هنا للحجز.</a>
</body>
</html>

7. إنشاء عنصر الرؤية

reservation-page.jsp

<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<!DOCTYPE html>
<html>
<head>
    <title>نموذج الحجز</title>
</head>
<h3>نموذج حجز السكك الحديدية</h3>
<body>
    <form:form action="submitForm" modelAttribute="reservation">
        الاسم الأول: <form:input path="firstName" />      
        <br><br>
        اسم العائلة: <form:input path="lastName" />
        <br><br>
        الجنس: 
        الجنس<form:radiobutton path="Gender" value="Male"/>
        الجنسية<form:radiobutton path="Gender" value="Female"/>
        <br><br>
        وجبات:
        الإفطار<form:checkbox path="Food" value="BreakFast"/>
        الغداء<form:checkbox path="Food" value="Lunch"/>
        عشاء<form:checkbox path="Food" value="Dinner"/>
        <br><br>
        <input type="submit" value="Submit" />
    </form:form>
</body>
</html>

confirmation-page.jsp

<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html>
<html>
<body>
<p>تم تأكيد حجزك بنجاح. يرجى التحقق من التفاصيل.</p>
الاسم الأول: ${reservation.firstName} <br>
اسم العائلة: ${reservation.lastName} <br>
الجنس: ${reservation.gender}<br>
وجبات: 
<ul>
<c:forEach var="meal" items="${reservation.food}">
<li>${meal}</li>
</c:forEach>
</ul>
</body>
</html>

الناتج: