软件开发实训(720实训)——第三课:SpringMVC第四章学习

内容关键词:学习如何编写基于注解的控制器

授课老师:720科技张森鹏

一、知识笔记.

1、Xmind是什么?

XMind 是一款非常实用的商业思维导图软件,应用全球最先进的Eclipse RCP 软件架构,全力打造易用、高效的可视化思维软件,强调软件的可扩展、跨平台、稳定
性和性能,致力于使用先进的软件技术帮助用户真正意义上提高生产率。

XMind采用Java语言开发,具备跨平台运行的性质,且基于EclipseRCP体系结构,可支持插件,插件通过编写XML清单文件可以扩展系统定义好的扩展点。XMind的程
序主体由一组插件构成,包括一个核心主程序插件、一组Eclipse运行时插件、一个帮助文档插件和一组多语种资源文件插件。Eclipse用户会对它的界面非常亲切。

XMind 应用EclipseRCP软件架构,XMind 的分发包在形式上是一组Eclipse Features,每个Eclipse Feature是一组Eclipse Plugins,Plugin之间相互依
赖相互扩展。在此Pluggable Platform的基础上,XMind 也可以支持其他开发人员为其编写Plugin,为XMind增添新的功能或改进其设计。由于大部分Plugin是
用Java语言编写,用本地语言编写的代码也针对各不同操作系统有不同版本,所以XMind理论上可以运行在几乎所有操作系统上,包括所有64位的操作系统,XMind 
Pro 6仅支持Windows、Mac OS X和Linux三大操作系统。

功能
XMind不仅可以绘制思维导图还能绘制鱼骨图、二维图、树形图、逻辑图、组织结构图(Org、Tree、Logic Chart、Fishbone)。并且,可以方便地从这些展示
形式之间进行转换。可以导入MindManager、FreeMind数据文件。灵活的定制节点外观、插入图标。丰富的样式和主题。输出格式有:HTML、图片。

1、思维管理

XMind 在企业和教育领域都有很广泛的应用。在企业中它可以用来进行会议管理、项目管理、信息管理、计划和时间管理、企业决策分析等;在教育领域,它通常被用
于教师备课、课程规划、头脑风暴等。

2、商务演示

XMind 被认为是一种是新一代演示软件的模式,传统的演示软件一般一种线性的方式来表达事物,XMIND 用于演示,为人们提供了一种结构化的演示模式,
在XMind中进行演示,它始终为用户提供纵向深入和横向扩展两个维度的选择,这样用户在进行演示的时候,可以根据听众和现场的反馈及时的调整演示的内容,
对于听众感兴趣的话题,可以纵向深入进行讲解和挖掘,对于听众不太关心的问题可以快速的跳转到下一个话题。

3、与办公软件协同工作

XMind 的文件可以导出成Microsoft Word、Microsoft PowerPoint、PDF、图片(包括PNG、JPG、GIF、BMP 等)、RTF、TXT等格式,可以方便的将XMIND绘
制的成果与朋友和同事共享。

特点
XMind 的特点可用“国产而国际化发展;商业化兼有开源版本功能丰富且美观”来概括。

推荐 XMind 来代替或补充 FreeMind,除了功能、界面因素之外,还有两个原因:一是国产软件(虽然网站和软件只有英文);二是XMind由商业软件开源而来——
多数情况下,有商业背景的产品可持续性会比开源/免费软件好一些。

同类软件对比所得结论

大多数人普通用户:XMind。理由:支持逻辑图、二维图等多种表达形式并可混用,更加美观、支持附件。

Geek或偏执者:FreeMind。理由:更节约资源,界面更简朴。

自主网络发布:FreeMind。理由:强大灵活的html导出功能。

不执着于软件,仅执着于最优效果:主用 XMind 辅用 FreeMind。即仅在自主网络发布时另存为FreeMind格式,再用FreeMind导出为html。

2、Controller 注解类型

org.springframework.stereotype.Controller

注解类型用于指示 Spring 类的实例是一个控制 器。

下面是一个带注解@Controller 的例子。

package com.example.controller;

 import org.springframework.stereotype; ...
 @Controller public class CustomerController { 4.1  Spring MVC 注解类型 51  // request-handling methods here }

 Spring 使用扫描机制来找到应用程序中所有基于注解的控制器类。为了保证 Spring 能找 到你的控制器,需要完成两件事情。首先,需要在 Spring MVC 的配置文件中声明 spring- context,如下所示:

<beans     ...     xmlns:context="http://www.springframework.org/schema/context"     ... >

 然后,需要应用<component-scan/>元素,如下所示:

<context:component-scan base-package="basePackage"/>

 请在<component-scan/>元素中指定控制器类的基本包。

例如,若所有的控制器类都在 com.example.controller 及其子包下,则需要写一个如下所示的<component-scan/>元素:

<context:component-scan base-package="com.example.controller"/>

3、RequestMapping 注解类型

现在,我们需要在控制类的内部为每一个动作开发相应的处理方法。要让 Spring 知道用哪一种方法来处理它的动作,

需要使用 org.springframework.web.bind.annotation.Request Mapping 注解类型映射的 URI 与方法。

RequestMapping 注解类型的作用同其名字所暗示的:映射一个请求和一种方法。

可以使 用@RequestMapping 注解一种方法或类。 一个采用@RequestMapping 注解的方法将成为一个请求处理方法,

并由调度程序在接收 到对应 URL 请求时调用。 下面是一个 RequestMapping 注解方法的控制器类。

package com.example.controller; import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.RequestMapping; ...

 @Controller public class CustomerController

{

     @RequestMapping(value = "/input-customer ")     public String inputCustomer()

     {

         // do something here
         return "CustomerForm";     } }

二、重要记录

1、具体应用

Controller 类 如前所述,使用 Controller 注释类型的一个优点在于:一个控制器类可以包含多个请 求处理方法。如清单 4.3 所示,ProductController 类中有 inputProduct 和 saveProduct 两个 方法。

清单 4.3  ProductController 类

package controller; import java.match.Bigoecimal import org.apache.commons.logging.Log;

import org.apache.commons.logging.LogFactory; import org.springframework.stereotype.Controller;

import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping;

import domain.Product; import form.ProductForm;

 @Controller public class ProductController {
     private static final Log logger =        LogFactory.getLog(ProductController.class);

     @RequestMapping(value="/input-product")    

         public String inputProduct() {         logger.info("inputProduct called");         return "ProductForm";     }

     @RequestMapping(value="/save-product")    

public String saveProduct(ProductForm productForm, Model model)

{         logger.info("saveProduct called");        

// no need to create and instantiate a ProductForm        

// create Product        

Product product = new Product();        

product.setName(productForm.getName());        

product.setDescription(productForm.getDescription());        

try {             product.setPrice(new BigDecimal(productForm.getPrice()));         }

catch (NumberFormatException e) {
            }

             // add product            

model.addAttribute("product", product);             return "ProductDetails";     } }

 其中,ProductController 的 saveProduct 方法的第二个参数是 org.springframework.ui.Model 类型。无论是否会使用,Spring MVC 都会在每一个请求处理方法被调用时创建一个 Model 实例,用于增加需要显示在视图中的属性。例如,通过调用 model.addAttribute 来添加 Product 实例: model.addAttribute("product", product);
 Product 实例就可以像被添加到 HttpServletRequest 中那样访问了


三、学习参考

XMind十大有用的功能

http://www.xmindchina.net/xinwen/xmind-shidagongneng.html

xmind是用来做什么的

https://zhidao.baidu.com/question/535027011.html

SpringMVC更多的学习(博文)

https://blog.csdn.net/u012302681/article/details/47718995

https://www.cnblogs.com/zhanglei93/p/6264796.html

http://www.360doc.com/content/14/1216/13/11965070_433351613.shtml

SpringMVC学习指南


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值