Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Mvc 1.0 - by Example @JEEConf 2015
Search
ivargrimstad
May 22, 2015
Programming
1
2.1k
Mvc 1.0 - by Example @JEEConf 2015
Overview, introduction and code samples. Includes links and how to get started.
ivargrimstad
May 22, 2015
Tweet
Share
More Decks by ivargrimstad
See All by ivargrimstad
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
180
Duke on CRaC with Jakarta EE
ivargrimstad
0
730
Developing Specifications - Jakarta EE: a Real World Example
ivargrimstad
0
640
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
970
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
980
What Spring Developers Should Know About Jakarta EE
ivargrimstad
0
1k
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
990
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
1.1k
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
800
Other Decks in Programming
See All in Programming
堅牢なフロントエンドテスト基盤を構築するために行った取り組み
shogo4131
8
2.4k
Socio-Technical Evolution: Growing an Architecture and Its Organization for Fast Flow
cer
PRO
0
370
これだけで丸わかり!LangChain v1.0 アップデートまとめ
os1ma
6
1.9k
Navigation 3: 적응형 UI를 위한 앱 탐색
fornewid
1
360
エディターってAIで操作できるんだぜ
kis9a
0
740
実は歴史的なアップデートだと思う AWS Interconnect - multicloud
maroon1st
0
220
SwiftUIで本格音ゲー実装してみた
hypebeans
0
420
ハイパーメディア駆動アプリケーションとIslandアーキテクチャ: htmxによるWebアプリケーション開発と動的UIの局所的適用
nowaki28
0
430
sbt 2
xuwei_k
0
300
AIの誤りが許されない業務システムにおいて“信頼されるAI” を目指す / building-trusted-ai-systems
yuya4
6
3.7k
Developing static sites with Ruby
okuramasafumi
0
310
Canon EOS R50 V と R5 Mark II 購入でみえてきた最近のデジイチ VR180 事情、そして VR180 静止画に活路を見出すまで
karad
0
130
Featured
See All Featured
Rebuilding a faster, lazier Slack
samanthasiow
85
9.3k
Product Roadmaps are Hard
iamctodd
PRO
55
12k
WCS-LA-2024
lcolladotor
0
380
Agile that works and the tools we love
rasmusluckow
331
21k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
The Invisible Side of Design
smashingmag
302
51k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
310
Testing 201, or: Great Expectations
jmmastey
46
7.8k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
8.3k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
62
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.8k
Transcript
@ivar_grimstad JEEConf 2015 MVC 1.0 - by Example Ivar Grimstad
@ivar_grimstad JEEConf 2015 Background JSR 371 - MVC for Java
EE 8 Demo Summary
@ivar_grimstad JEEConf 2015 @ivar_grimstad https://github.com/ivargrimstad https://www.linkedin.com/in/ivargrimstad http://lanyrd.com/profile/ivargrimstad/
@ivar_grimstad JEEConf 2015 Background
@ivar_grimstad JEEConf 2015 What?
@ivar_grimstad JEEConf 2015 Controller Model View Request Update Update Get
MVC Pattern
@ivar_grimstad JEEConf 2015 Component-based MVC
@ivar_grimstad JEEConf 2015 Controller Model View Request Update Update Get
Component-based MVC
@ivar_grimstad JEEConf 2015 Action-based MVC
@ivar_grimstad JEEConf 2015 Controller Model View Request Update Update Get
Action-based MVC
@ivar_grimstad JEEConf 2015 Why?
@ivar_grimstad JEEConf 2015 https://java.net/downloads/javaee-spec/JavaEE8_Community_Survey_Results.pdf
@ivar_grimstad JEEConf 2015 http://glassfish.org/survey
@ivar_grimstad JEEConf 2015 How?
@ivar_grimstad JEEConf 2015 JSR 371 MVC for Java EE 8
@ivar_grimstad JEEConf 2015 Action-based MVC
@ivar_grimstad JEEConf 2015 Existing Java EE Technologies
@ivar_grimstad JEEConf 2015 JSR 371 Expert Group
@ivar_grimstad JEEConf 2015 Key Decisions
@ivar_grimstad JEEConf 2015 Key Decisions
@ivar_grimstad JEEConf 2015 Build MVC 1.0 on top of JAX-RS
@ivar_grimstad JEEConf 2015 Show me the CODE !
@ivar_grimstad JEEConf 2015 Controllers
@ivar_grimstad JEEConf 2015 public class HelloController { }
@ivar_grimstad JEEConf 2015 @Path(“hello”) public class HelloController { }
@ivar_grimstad JEEConf 2015 @Controller @Path(“hello”) public class HelloController {
}
@ivar_grimstad JEEConf 2015 @Controller @Path( public } Views
@ivar_grimstad JEEConf 2015 @Controller @Path(“hello”) public class HelloController {
}
@ivar_grimstad JEEConf 2015 @Controller @Path(“hello”) public class HelloController { @GET
public String hello() { return “hello.jsp”; } }
@ivar_grimstad JEEConf 2015 @Controller @Path(“hello”) public class HelloController { @GET
public Viewable hello() { return new Viewable(“hello.jsp”); } }
@ivar_grimstad JEEConf 2015 @Controller @Path(“hello”) public class HelloController { @GET
public Response hello() { return Response.status(OK) .entity(“hello.jsp”) .build(); } }
@ivar_grimstad JEEConf 2015 @Controller @Path(“hello”) public class HelloController { @View(“hello.jsp”)
@GET public void hello() { } }
@ivar_grimstad JEEConf 2015 @View(“hello.jsp”) @Controller @Path(“hello”) public class HelloController {
@GET public void hello() { } }
@ivar_grimstad JEEConf 2015 Models using CDI
@ivar_grimstad JEEConf 2015 @View(“hello.jsp”) @Controller @Path(“hello”) public class HelloController {
@GET public void hello() { } }
@ivar_grimstad JEEConf 2015 @Named(“greeting”) @RequestScoped public class Greeting { private
String message; public void setMessage(String message) { this.message = message; } public String getMessage() { return message; } }
@ivar_grimstad JEEConf 2015 @View(“hello.jsp”) @Controller @Path(“hello”) public class HelloController {
@Inject private Greeting greeting; @GET public void hello() { greeting.setMessage(“Hello Kiev”); } }
@ivar_grimstad JEEConf 2015 <%@page contentType=“text/html" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head>
<title>MVC 1.0 Hello Demo</title> </head> <body> <h1>Hello ${greeting.message}</h1> </body> </html>
@ivar_grimstad JEEConf 2015 @View(“hello.jsp”) @Controller @Path(“hello”) public class HelloController {
@GET public void hello() { } }
@ivar_grimstad JEEConf 2015 @View(“hello.jsp”) @Controller @Path(“hello”) public class HelloController {
@Inject private Models model; @GET public void hello() { model.put(“message”,“Hello Kiev”); } }
@ivar_grimstad JEEConf 2015 <%@page contentType=“text/html" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head>
<title>MVC 1.0 Hello Demo</title> </head> <body> <h1>Hello ${message}</h1> </body> </html>
@ivar_grimstad JEEConf 2015 Demo
@ivar_grimstad JEEConf 2015 Create MVC Project Advanced Example Comparison with
Spring MVC
@ivar_grimstad JEEConf 2015 Road Map
@ivar_grimstad JEEConf 2015 Q3 2014 Expert Group formed Q1 2015
Early Draft Q3 2015 Public Review Q1 2016 Proposed Final Draft Q3 2016 Final Release
@ivar_grimstad JEEConf 2015 Reference Implementation https://ozark.java.net
@ivar_grimstad JEEConf 2015 Summary
@ivar_grimstad JEEConf 2015 Existing Java EE Technologies CDI, JAX-RS, Bean
Validation New Annotations @Controller @View Community Support Summary
@ivar_grimstad JEEConf 2015 Getting Started Specification https://mvc-spec.java.net Reference Implementation https://ozark.java.net
@ivar_grimstad JEEConf 2015 Demo Source https://github.com/ivargrimstad/mvc-samples https://github.com/ivargrimstad/javaee-mvc-spring
@ivar_grimstad JEEConf 2015 www.cybercom.com