mvc 4.0.0.0_MVC 1.0将继续存在

mvc 4.0.0.0

更新: 自撰写本文之日起,转让已经完成。

从那时起,Christian Kaltepoth被邀请与Ivar Grimstad共同领导该规范。 其他重要的新闻是, 规范,JavaDoc,API,RI和TCK将使用Apache License 2.0进行许可,并且时间表已更新。 我们的目标是在2017年第四季度之前准备好公众审查,在2018年第一季度之前准备最终草案,并在2018年第二季度最终发布。

按照JSR 371的规定,MVC 1.0最初计划成为即将发布的Java EE 8版本的一部分。 但是,在JavaOne 2016上提出的修订的Java EE计划中,MVC 1.0被排除在发行版之外。

社区做出了React,在Oracle和Java Community Process(JCP)的几个社区成员之间进行讨论之后,该规范真正从Oracle转移到了您的规范中,可以作为独立的规范继续进行。 [在撰写本文时,仍有一些法律文件需要草拟并签名才能完成转让。]

MVC 1.0 API建立在JAX-RS之上,并与现有的EE技术(例如CDI和Bean验证)集成。 支持现有的视图引擎(JSP和Facelets),以及提供自己的视图引擎的灵活性。

一个简单的hello world示例如下所示:

@Path("hello")
public class HelloController {

    @Inject
    private User user;

    @GET
    @Controller
    public String hello(@QueryParam("name") String name) {
        user.setName(name);
        return "hello.jsp";
    }
}

验证方式

MVC 1.0中的异常处理基于JAX-RS提供的基础支持。 除此之外,MVC 1.0还提供了额外的支持来处理绑定错误和验证错误。

@Controller
@Path("form")
public class FormController {
   @Inject private BindingResult br;

@POST
public Response formPost(@Valid @BeanParam FormDataBean f) {
    if (br.isFailed()) {
        return Response.status(BAD_REQUEST)
                       .entity(“error.jsp”).build();
      }
      return Response.status(OK).entity(“data.jsp”).build();
   }
}

安全

MVC 1.0指定了针对跨站点请求伪造(CSRF)的保护。 这可以通过在处理时验证的表单中添加以下隐藏字段来完成。

...
<input type="hidden" name="${mvc.csrf.name}" value="${mvc.csrf.token}"/>
...

通过使用@CsrfValid注释控制器来启用CSRF保护。

...
@POST
    @CsrfValid
    public void postForm(@FormParam("greeting") String greeting) {
        // Process greeting
    }
...

您也可以将应用程序配置为进行隐式验证,因此在所有后期请求中都需要CSRF令牌,而没有@CsrfValid注释。

MVC 1.0规范指定了必须由实现触发的五个不同事件。 该机制基于CDI事件,可以通过使用标准CDI进行观察和采取措施。

五个必需的事件是:

  • 。 BeforeControllerEvent
  • 。 AfterControllerEvent
  • 。 ControllerRedirectEvent
  • 。 BeforeProcessViewEvent
  • 。 AfterProcessViewEvent

有时需要在返回重定向指令的请求与该重定向触发的新请求之间共享数据。 为此,MVC 1.0定义了一个新的CDI范围,该范围由注释@RedirectScoped 。 在实现POST-redirect-GET模式时,这特别有用。

MVC 1.0将术语_request locale_定义为在请求生命周期内用于任何与语言环境相关的操作的语言环境。 可从MvcContext获得请求区域设置。

@Controller
@Path(“hello”)
public class HelloController {

   @Inject
   private MvcContext mvc;

  @GET
  public String get() {
    Locale locale = mvc.getLocale();

  }
}

当前状态

在Java EE 7环境中已经可以使用该技术,并且随着Java EE 8和9的发展,MVC 1.0将保持一致以利用平台提供的功能。

当前,该规范由两个应用程序服务器(GlassFish和Payara)支持。 您将需要在项目的pom.xml中添加以下两个依赖项。

<dependency>
   <groupId>javax.mvc</groupId>
   <artifactId>javax.mvc-api</artifactId>
   <version>1.0-edr2</version>
</dependency>

<dependency>
   <groupId>org.glassfish.ozark</groupId>
   <artifactId>ozark</artifactId>
   <version>1.0.0-m03-SNAPSHOT</version>
   <scope>runtime</scope>
</dependency>

资源资源

翻译自: https://jaxenter.com/mvc-1-0-lives-134803.html

mvc 4.0.0.0

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值