AJAXJS MVC 使用教程之一:创建第一个 Hello World! 路由控制器

我们利用MVC来建立一个Hello World!的Web应用程序1。首先在项目pom.xml添加ajaxjs-web的JAR包依赖。

<dependency>
    <groupId>com.ajaxjs</groupId>
    <artifactId>ajaxjs-web</artifactId>
    <version>1.2.0</version>
</dependency>

把多个路由封装起来的类称之为控制器。接着我们编写它,在源码目录中新建一个Java文件:HelloWorldController类,实现IController接口。在MVC中标识一个类是控制器类非常简单,只需要实现接口Icontroller即可。如下列HelloWorldController就被认为是一个控制器。

package com.mysoft.app;

import javax.ws.rs.GET;
import javax.ws.rs.Path;

import com.ajaxjs.mvc.controller.IController;

@Path("/SayHello") // 定义URL路径
public class HelloWorldController implements IController {
	@GET	// 绑定 HTTP GET 方法,用户一访问 GET /SayHello,就会跑到这方法来
	public String helloWorld() {
		return "html::Hello World!"; // 返回字符串就是要显示的内容,html:: 是固有的前缀,不会显示
	}
}

作为一个完整的控制器,还需要开发者定义@Path注解和起码编写一个方法。注解@Path就是路由路径,不能为空或者空字符串。若为/时表示全部路径都跑到这个控制器里面来。其次是一个带有HTTP方法注解的Java方法。上述例子代码中的@GET对应helloWorld()方法,意思是GET请求到/SayHello这个路径上马上执行helloWorld()方法,方法返回的String表示输出一段具体的HTML。

一个最简单的路由控制器算写好了,最后一步是简单的配置扫描包名。我们不主张一开始就要初学者面对复杂吓人的配置,连web.xml都省去了。但无论如何优化约定,都要用户自己配置“唯二”的两处地方:一、组件所在的包,让框架去扫描;二、数据库连接的配置。

全局配置文件site_config.json约定位于WebContent或WebRoot下的META-INF目录中,打开它修改System.scanPackage那一项,多个包名“,”分隔,修改为你目标的包名,如本例中的com.mysoft.app,但一般较大的包名即可,如com.mysoft,不然太细了输入多个包名也麻烦。如同文件目录那般,包名也支持递归查找的。

最后跑一下,在IDE里面执行工程,运行服务器,如无意外你会看到控制台输出如插图 4.2所示的日志。
在这里插入图片描述在浏览器中正确的网页内容,如插图 3.10所示。
在这里插入图片描述
控制器中每个动作一般都会返回结果作为响应输出,例如当前字符串里html::XXXX含有前缀“html::”,表示后面表示要输出的HTML字符串。前缀是约定好的,每种情况都不一样。好比html::说的是将前缀后面的内容植入简单的HTML页面body中,如下例所示。

<html>
	<meta charset="utf-8" />
	<body>Hello World!</body>
</html>

这里的String还可以是其他情况,MvcDispatcher会根据此返回值确定最后以何种视图响应前端,不同类型的前缀如表格 4.1所示。
在这里插入图片描述
除了上述约定还可以设置返回void的方法——那不表示不响应,而是表示不返回基于文本(字符串)的HTTP报文,适合在控制resposne对象进行二进制输出、图片输出、文件下载等的时候使用。

©️2020 CSDN 皮肤主题: 岁月 设计师:pinMode 返回首页