مشخصات مقاله
آموزش Model Interface-Java Spring
واسط مدل
واسط مدل(Model Interface) در MVC اسپرینگ
در MVC اسپرینگ، یک مدل به عنوان یک محفظه(container) که داده های برنامه کاربردی را حفظ می کند، کار میکند. در اینجا داده می تواند به هر شکلی باشد از جمله اشیا، رشته ها، داده هایی از پایگاه داده و غیره. لازم است واسط مدل در بخش کنترلر برنامه کاربردی قرار گیرد. شی HttpServletRequest اطلاعات ارائه شده توسط کاربر را می خواند و آن را به واسط مدل انتقال می دهد. اکنون یک صفحه منظر به سادگی به داده های بخش مدل دسترسی دارد.
متدهای واسط مدل
- متد Model addAllAttributes(Collection arg): این متد تمامی ویژگی های درون مجموعه ارائه شده را به این map اضافه می کند.
-
متد Model addAllAttributes(Map
arg): این متد تمامی ویژگی های درون mapارائه شده را به این map اضافه می کند. - متد Model addAllAttribute(Object arg): این متد با استفاده از یک نام تولید شده، ویژگی های ارائه شده را به این map اضافه می کند.
- متد Model addAllAttribute(String arg0, Object arg1) : این متد ویژگی را به نام ارائه شده پیوند می دهد.
-
متد Map
asMap(): این متد مجموعه فعلی از ویژگی های مدل را به عنوان map باز میگرداند. - متد Model mergeAttributes(Map< String,?> arg): این متد تمام ویژگی های درون map ارائه شده را به این map اضافه می کند، و اشیای موجود با نام مشابه اولویت دارند.
- متد boolean containsAttribute(String arg) : این متد مشخص کننده این است که آیا این مدل شامل یک ویژگی با نام داده شده باشد.
مثال مدل MVC در اسپرینگ
یک صفحه ورود شامل نام کاربری و رمز عبور ایجاد کنید. در اینجا اعتبار رمز عبور را با یک مقدار مشخص می سنجیم.
1- به pom.xml وابستگی ها را اضافه کنید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | < dependency > < groupId >org.springframework< / groupId > < artifactId >spring-webmvc< / artifactId > < version >5.1.1.RELEASE< / version > < / dependency > < dependency > < groupId >javax.servlet< / groupId > < artifactId >servlet-api< / artifactId > < version >3.0-alpha-1< / version > < / dependency > < button ></ button > |
2- صفحه درخواست را ایجاد کنید.
در اینجا برای دریافت نام و رمز عبور از کاربر، صفحه ورود را ایجاد می کنیم.
index.jsp
1 2 3 4 5 6 7 8 9 10 11 12 13 | < html > < body > < form action = "hello" > UserName : < input type = "text" name = "name" /> < br >< br > Password : < input type = "text" name = "pass" /> < br >< br > < input type = "submit" name = "submit" > < / form > < / body > < / html > < button ></ button > |
3- کلاس کنترلر را ایجاد کنید.
در کلاس کنترلر، از HttpServletRequest برای خواندن داده فرم HTML (HTML form data) ارائه شده توسط کاربر استفاده می شود. مدل شامل داده های درخواستی است و آن را برای صفحه منظر آماده می کند.
HelloController.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | package com.javatpoint; 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) { //read the provided form data String name=req.getParameter( "name" ); String pass=req.getParameter( "pass" ); if (pass.equals( "admin" )) { String msg= "Hello " + name; //add a message to the model m.addAttribute( "message" , msg); return "viewpage" ; } else { String msg= "Sorry " + name+ ". You entered an incorrect password" ; m.addAttribute( "message" , msg); return "errorpage" ; } } } <button></button> |
4- در فایل web.xml ورودی کنترلر را آماده کنید.
web.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | < ? 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 > < button ></ button > |
5- در فایل xml ، bean را تعریف کنید.
spring-servlet.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | < ? xml version = "1.0" encoding = "UTF-8" ?> 6. xsi:schemaLocation=" <!-- Provide support for component scanning --> < context:component-scan base-package = "com.javatpoint" /> <!--Provide support for conversion, formatting and validation --> < 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 > < button ></ button > |
6- سایر اجزای منظر را ایجاد کنید
برای اجرای این مثال، اجزای منظر زیر باید درون دایرکتوری WEB-INF/jsp قرار گیرند.
viewpage.jsp
1 2 3 4 5 6 | 1. < html > 2. < body > 3. ${message} 4. < / body > 5. < / html > < button ></ button > |
errorpage.jsp
1 2 3 4 5 6 7 8 | 1. < html > 2. < body > 3. ${message} 4. < br >< br > 5. < jsp:include page = "/index.jsp" >< / jsp:include > 6. < / body > 7. < / html > < button ></ button > |
خروجی :




