Java EE 8 MVC:Ozark入门

大约一年前, 针对Java EE 8宣布了一个新的基于动作的MVC框架,简称为MVC。 MVC(在JSR 371中指定)基于JAX-RS,并与Java EE技术(如CDI和Bean验证)集成。 MVC 1.0的参考实现是Ozark

这是我计划编写的有关Java EE MVC的多部分教程的第一篇文章。 在本文中,我们将看到如何获取与Ozark一起运行的基本Java EE MVC应用程序。 即将发表的文章将为特定部分提供更多详细信息。

Ozark入门

请注意,MVC规范仍是一个早期草案,最终规范计划于2016年第三季度发布。要了解处于这种早期状态的Java EE MVC,我们需要一个最新的夜间版本GlassFish和当前的Ozark里程碑发布。 Ozark团队建议当前的Ozark版本使用GlassFish b13 03-16-2015

除了GlassFish,我们还需要以下依赖项来创建MVC应用程序:

<dependencies>
  <dependency>
    <groupId>com.oracle.ozark</groupId>
    <artifactId>ozark</artifactId>
    <version>1.0.0-m01</version>
    <scope>compile</scope>
  </dependency>
  <dependency>
    <groupId>javax</groupId>
    <artifactId>javaee-api</artifactId>
    <version>7.0</version>
  </dependency>
</dependencies>

如上所述,Java EE MVC基于JAX-RS。 因此,如果您已经对JAX-RS有所了解,那么您可能会非常熟悉。

要创建我们的MVC应用程序,我们首先需要一个JAX-RS Application类:

@ApplicationPath("getting-started")
public class GettingStartedApplication extends Application {

}

javax.ws.rs.core.Application的此子类可用于定义其他JAX-RS组件。 在此示例中,我们不需要任何特殊配置,因此该类可以保持为空。 使用@ApplicationPath,我们定义了应用程序的基本路径。

创建控制器

控制器负责处理传入的请求。 根据传入的请求,它执行业务逻辑,更新模型并返回应呈现的视图。 一个简单的Java EE MVC控制器如下所示:

@Controller
@Path("hello")
public class HelloController {

  @Inject
  Models models;

  @GET
  public String sayHello(@QueryParam("name") String name) {
    String message = "Hello " + name;
    models.put("message", message);
    return "/WEB-INF/jsp/hello.jsp";
  }
}

Controller类使用@Controller和@Path进行注释。 这表明该类是Java EE MVC控制器,它侦听/ getting-started / hello上的请求。

使用CDI,可以将Models的实例注入到控制器中。 Models类代表MVC模型。 它由控制器填充数据,然后传递到视图。 模型基本上是一个Map <String,Object>,可以包含任意数据。

sayHello()方法处理传入的HTTP GET请求(由@GET表示)。 使用@QueryParam,可以将请求参数绑定到方法参数。 在sayHello()内部,请求参数名称用于创建文本消息,然后将其添加到模型中。 返回的String定义了应呈现的视图的路径。

创建视图

Java EE MVC应用程序中的视图通常是带有CSS和JavaScript文件HTML页面。 在此示例中,我们的视图是一个简单的JSP文件,位于/WEB-INF/jsp/hello.jsp

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Getting started</title>
  </head>
  <body>
    <h1>${message}</h1>
  </body>
</html>

在JSP文件中,可以通过EL访问模型属性。 在这里,我们使用$ {message}来访问带有关键消息的模型值。

Java EE MVC规范为视图定义了两个标准模板引擎:JSP和Facelets。 但是,其他模板引擎也可以轻松集成。 我们将在下一篇文章中介绍其他视图技术的集成。

运行应用程序

现在,我们准备启动GlassFish并部署我们的新MVC应用程序。 之后,我们可以将GET请求发送到我们的控制器,并查看返回的内容。 不要忘记控制器需要一个名称参数。

例如, GET /getting-started/hello?name=john将在HTML页面中显示消息Hello John

摘要

Java EE MVC是即将推出的新Java MVC Web框架。 它使用了许多现有的Java技术,例如JAX-RS,CDI和JSP。 该框架本身非常简单且易于理解。 完整的MVC 1.0规范只有33页左右,非常容易阅读。

我们可以使用MVC 1.0参考实现的最新里程碑版本Ozark来了解即将到来的Java EE 8框架。

  • 您可以在GitHub找到示例应用程序的完整源代码。

翻译自: https://www.javacodegeeks.com/2015/09/java-ee-8-mvc-getting-started-with-ozark.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值