当前位置: 首页 > wzjs >正文

学习做网站的网站网络营销推广总结

学习做网站的网站,网络营销推广总结,买了域名就可以做网站,有那些做任务的网站在 Spring MVC 中,Controller 负责请求的处理,准备需要展示的数据,并将这些数据传递给 View,由 View 负责最终的页面渲染。数据从 Controller 传递到 View 主要通过模型 (Model) 实现。 Spring MVC 提供了以下几种方式让 Control…

在 Spring MVC 中,Controller 负责请求的处理,准备需要展示的数据,并将这些数据传递给 View,由 View 负责最终的页面渲染。数据从 Controller 传递到 View 主要通过模型 (Model) 实现。

Spring MVC 提供了以下几种方式让 Controller 将数据添加到模型中,然后将模型传递给视图:

  1. 使用 Model 接口作为 Controller 方法参数 (推荐)

    • 这是目前最常用和推荐的方式。可以在 Controller 方法的参数列表中声明一个 org.springframework.ui.Model 类型的参数。
    • Spring MVC 在调用方法时会自动创建一个 Model 实例并将其传递给方法。
    • 可以使用 model.addAttribute(key, value) 方法向模型中添加属性,其中 key 是属性名(字符串),value 是要传递的数据对象。View 将使用这个 key 来访问数据。
    import org.springframework.stereotype.Controller;
    import org.springframework.ui.Model;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RequestParam;@Controller
    public class UserController {@GetMapping("/greeting")public String greeting(@RequestParam(name="name", required=false, defaultValue="World") String name, Model model) {// 准备数据String message = "Hello, " + name + "!";// 将数据添加到模型中,key 是 "greetingMessage"model.addAttribute("greetingMessage", message);model.addAttribute("pageTitle", "Greeting Page"); // 可以添加多个属性// 返回视图名return "greetingView"; // Spring MVC 会找到名为 greetingView 的视图来渲染}
    }
    

    greetingView 这个视图(例如 JSP, Thymeleaf 模板等)中,我们可以通过 greetingMessagepageTitle 这两个 key 来访问模型中的数据。

  2. 使用 MapModelMap 作为 Controller 方法参数

    • ModelMapLinkedHashMap 的子类,也实现了 Map 接口,提供了与 Model 相似的功能 (addAttribute 方法)。
    • Map 接口也可以直接使用。
    • 它们的行为与 Model 接口基本相同,都是向模型中添加键值对数据。
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.GetMapping;
    import java.util.Map;@Controller
    public class ProductController {@GetMapping("/productDetails")public String showProductDetails(Map<String, Object> model) {// 准备数据Product product = productService.getProductById(123L);// 将数据添加到 Map (模型) 中model.put("product", product);model.put("currency", "USD");// 返回视图名return "productDetailsView";}
    }
    

    productDetailsView 视图中,可以通过 productcurrency 访问数据。

  3. 使用 ModelAndView 返回值

    • ModelAndView 是 Spring MVC 早期常用的类,它将模型数据和视图名封装在一个对象中返回。
    • 通过 addObject(key, value) 添加模型数据,通过 setViewName(viewName) 设置视图名。
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.servlet.ModelAndView;@Controller
    public class OrderController {@GetMapping("/orderDetails")public ModelAndView showOrderDetails() {// 准备数据Order order = orderService.getOrderById(456L);// 创建 ModelAndView 对象ModelAndView mav = new ModelAndView();// 添加模型数据mav.addObject("order", order);mav.addObject("status", "Shipped");// 设置视图名mav.setViewName("orderDetailsView");return mav;}
    }
    

    orderDetailsView 视图中,可以通过 orderstatus 访问数据。

  4. 使用 @ModelAttribute 标注方法

    • 可以在 Controller 类中定义一个方法,并使用 @ModelAttribute 标注它。
    • 这个方法会在 Controller 的请求处理方法执行之前被调用。
    • 该方法的返回值(通过参数 Model 添加的数据)会自动添加到模型中,供当前 Controller 的所有方法以及最终的视图使用。常用于添加一些公共的、所有视图都需要的数据(如导航信息、用户登录状态等)。
    import org.springframework.stereotype.Controller;
    import org.springframework.ui.Model;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.ModelAttribute;@Controller
    public class CommonDataController {// 这个方法会在每次处理请求前执行@ModelAttributepublic void addCommonData(Model model) {model.addAttribute("appName", "My Awesome App");model.addAttribute("currentUser", "Guest"); // 实际应用中这里会获取当前登录用户}@GetMapping("/home")public String homePage() {// homeView 视图可以直接访问 appName 和 currentUserreturn "homeView";}@GetMapping("/about")public String aboutPage() {// aboutView 视图也可以访问 appName 和 currentUserreturn "aboutView";}
    }
    

    homeViewaboutView 中,都可以访问 appNamecurrentUser

  5. 通过 Controller 方法的返回值 (当返回值不是 String, View, ModelAndView 等特殊类型时)

    • 如果 Controller 方法返回一个 POJO 对象,并且没有 @ResponseBody 注解,Spring MVC 会尝试将这个返回值也添加到模型中。默认情况下,属性名会根据返回值的类型自动生成(例如,返回 User 对象,属性名可能是 “user” 或 “aUser”)。

数据如何到达 View?

当 Controller 方法执行完毕,Spring MVC 会将模型中的数据(通常存储在一个 MapModelMap 对象中)放入到请求属性 (Request Attributes) 中。然后,Spring MVC 将控制权交给选定的 View。

不同的 View 技术访问请求属性的方式不同:

  • JSP/JSTL/EL (Expression Language): 可以直接使用 EL 表达式访问模型中的属性,例如 ${greetingMessage}${user.name}
  • Thymeleaf: 使用 OGNL 或 Spring EL 表达式,例如 <p th:text="${greetingMessage}"></p><span th:text="${product.price}"></span>
  • Freemarker: 使用 ${greetingMessage}${user.name}

总结传递数据的过程:

  1. Controller 通过 ModelMapModelAndView@ModelAttribute 方法将数据以键值对的形式添加到 Spring 管理的模型中。
  2. Spring MVC 在处理请求的后期,将模型中的数据复制到当前请求的属性中 (HttpServletRequest 的属性)。
  3. Spring MVC 委托 ViewResolver 找到对应的 View(例如 JSP 文件)。
  4. View 引擎(例如 JSP 容器、Thymeleaf 引擎)在渲染页面时,可以从请求属性中获取到 Controller 放入的模型数据,并将其呈现在最终的 HTML 或其他格式的响应中。

选择哪种方式取决于具体使用场景。使用 Model 参数是最灵活的方式,它将模型的管理与视图名分开来返回,使 Controller 方法更清晰。ModelAndView 适合模型数据和视图名紧密关联、一起返回的场景。@ModelAttribute 适合跨多个请求处理的公共数据。

http://www.dtcms.com/wzjs/332526.html

相关文章:

  • 网站建设价格标准成都网站维护
  • 防城港门面做网站的百度图片搜索入口
  • 香港空间虚拟主机seo营销推广公司
  • 商城的网站设计搜索软件
  • 东莞网站优化哪家好cpu游戏优化加速软件
  • 发任务做任务得网站seo工作内容和薪资
  • 泰安营销型网站建设网络营销的认知
  • 教你如何建立网站百度登录注册
  • 可以做心理测试的网站有哪些网络营销的推广方法有哪些
  • 网站源码站百度指数趋势
  • 做色流网站要注意什么问题百度权重怎么提高
  • 商水县建设局网站上海知名网站制作公司
  • 网页广告出价平台seo教育培训机构
  • 天津和平做网站如何做网络推广赚钱
  • 石狮网站建设费用建站abc网站
  • 网站建设宣传seo内容优化是什么
  • 静态网站建设教程深圳百度推广联系方式
  • 西安做网站多少钱seo外包大型公司
  • 普通企业网站建设郑州高端网站制作
  • 新疆疫情最新数据消息地图如何进行seo搜索引擎优化
  • c 手机网站开发电商运营转行后悔了
  • 做微信营销网站建设新手怎么做电商
  • 建筑方案ppt模板seo优化厂商
  • 做网站看百度脸色哪里有正规的电商培训班
  • 需要做网站的行业哪个公司要做网络推广
  • 青岛外贸网站运营哪家好收录好的网站
  • 哪类型网站容易做2020年度关键词有哪些
  • 海伦网站建设中国建设网官方网站
  • 创世通网站建设电子商务营销方法
  • 企业商务网站有哪些seo站长工具推广平台