Weitere ähnliche Inhalte Ähnlich wie JavaOne 2014 BOF4241 What's Next for JSF? (20) Mehr von Edward Burns (20) Kürzlich hochgeladen (20) JavaOne 2014 BOF4241 What's Next for JSF?2. What’s
Next
for
JSF?
BOF4241
Edward
Burns
Manfred
Riem
Java
Community
Process
SpecificaGon
Leads
Java
EE
PlaJorm
group
Copyright
©
2014,
Oracle
and/or
its
affiliates.
All
rights
reserved.
|
3. Safe
Harbor
Statement
The
following
is
intended
to
outline
our
general
product
direcGon.
It
is
intended
for
informaGon
purposes
only,
and
may
not
be
incorporated
into
any
contract.
It
is
not
a
commitment
to
deliver
any
material,
code,
or
funcGonality,
and
should
not
be
relied
upon
in
making
purchasing
decisions.
The
development,
release,
and
Gming
of
any
features
or
funcGonality
described
for
Oracle’s
products
remains
at
the
sole
discreGon
of
Oracle.
Copyright
©
2014,
Oracle
and/or
its
affiliates.
All
rights
reserved.
|
M
4. My
Plan
for
Your
Time
Investment
UI
trends
What
does
this
mean
for
JSF?
What
about
Java
EE
8?
Preserving
your
investment
in
JSF
Q&A
Copyright
©
2014,
Oracle
and/or
its
affiliates.
All
rights
reserved.
|
1
2
3
4
5
E
5. My
Plan
for
Your
Time
Investment
UI
trends
What
does
this
mean
for
JSF?
What
about
Java
EE
8?
Preserving
your
investment
in
JSF
Q&A
Copyright
©
2014,
Oracle
and/or
its
affiliates.
All
rights
reserved.
|
1
2
3
4
5
E
7. Copyright
©
2014,
Oracle
and/or
its
affiliates.
All
rights
reserved.
|
Mobile
First
Web
Design
• Mobile
is
now
more
important
than
desktop
• What
kind
of
app?
– Mobile
Web
– NaGve
App
(Android,
iOS,
Windows)
• Lots
of
help
out
there
– twi`er
bootstrap
and
its
enablers
E
8. Copyright
©
2014,
Oracle
and/or
its
affiliates.
All
rights
reserved.
|
E
DEPARTMENT
OF
STATE
10. MEAN
Copyright
©
2014,
Oracle
and/or
its
affiliates.
All
rights
reserved.
|
E
11. Copyright
©
2014,
Oracle
and/or
its
affiliates.
All
rights
reserved.
|
• MongoDB
• ExpressJS
• AngularJS
• Node.js
E
13. What
Does
All
This
Mean
for
JSF?
• Mobile
– Use
a
mobile
opGmized
JSF
component
library
Copyright
©
2014,
Oracle
and/or
its
affiliates.
All
rights
reserved.
|
• State
– Design
for
statelessness
• JavaScript
– SGll
held
at
arm’s
length
– A
component
level
concern
E
14. What
Does
All
This
Mean
for
JSF?
What
about
the
MVC
JSR?
UI
Component
Oriented
MVC
Copyright
©
2014,
Oracle
and/or
its
affiliates.
All
rights
reserved.
|
M
15. What
Does
All
This
Mean
for
JSF?
What
about
the
MVC
JSR?
AcAon
Oriented
MVC
Copyright
©
2014,
Oracle
and/or
its
affiliates.
All
rights
reserved.
|
M
16. Copyright
©
2014,
Oracle
and/or
its
affiliates.
All
rights
reserved.
|
What
About
the
MVC
JSR?
Alignment
between
JSF
and
MVC
• Facelets
• Scopes
– Flow
– Flash
– View
Scope
M
17. Copyright
©
2014,
Oracle
and/or
its
affiliates.
All
rights
reserved.
|
• Tie
up
the
loose
ends
– SpecificaGon
clarificaGons
– CDI
alignment
• Ease
of
use
e.g.
@Inject
FacesContext
• @Inject
into
Validators,
Converters,
etc.
– HtmlInputHidden
is
ClientBehaviorHolder
• Small
scale
new
features
• Subject
to
Spec
Lead
oversight
– JSON
ajax
component
rendering
– Stateless
enhancements
– GET
enhancements
– Adopt-‐a-‐JSR
support
JSF
2.3
in
Java
EE
8
Two
feature
drivers,
each
with
their
own
agenda
M
18. JSF
2.3
Small
Scale
New
Features
• End
of
the
line
for
non-‐CDI
managed
beans
Copyright
©
2014,
Oracle
and/or
its
affiliates.
All
rights
reserved.
|
– Redefine
meaning
of
@javax.faces.bean.ManagedBean
to
be
CDI
bean
– Redefine
corresponding
XML
syntax
to
be
CDI
bean
• Ajax
method
invocaGon
– A
Faces
request
– Not
specific
to
a
view
– Is
specific
to
a
ClientWindow
– Returns
results
in
JSON
• MulG-‐component
validaGon
M
19. Community
Corner
JSF
Expert
Group
Members
Copyright
©
2014,
Oracle
and/or
its
affiliates.
All
rights
reserved.
|
– Ian
Hlavats,
Tarantula
ConsulGng
– Kito
Mann,
Virtua
E
20. Preserving
Your
Investment
In
JSF
JSF
2.2
New
Feature
Recap
Copyright
©
2014,
Oracle
and/or
its
affiliates.
All
rights
reserved.
|
21. Copyright
©
2014,
Oracle
and/or
its
affiliates.
All
rights
reserved.
|
JSF
2.2
Big
Ticket
Features
• Markup
EvoluGon
– 1090
HTML5
Friendly
Markup
• MulG-‐tenancy
and
Modularity
– 730
Flows
– 1142
Resource
Library
Contracts
22. 1090
HTML5
Friendly
Markup
Copyright
©
2014,
Oracle
and/or
its
affiliates.
All
rights
reserved.
|
The
best
part
of
Wicket
comes
to
JSF
• This
is
a
JSF
page
<!DOCTYPE html>!
<html xmlns="http://www.w3.org/1999/xhtml"!
xmlns:myNS="http://xmlns.jcp.org/jsf”>!
<form myNS:id="form">!
<input name="textField" type="text" myNS:value="#{bean.text1}" />!
<input type="submit" myNS:id="submitButton" value="submit" /> !
<p>submitted text: #{bean.text1}.</p>!
</form>!
</html>!
!
23. 1090
HTML5
Friendly
Markup
Copyright
©
2014,
Oracle
and/or
its
affiliates.
All
rights
reserved.
|
Let
the
elegance
of
HTML
shine
through
• Before
JSF
2.2
– JSF
tags
hide
complexity
of
underlying
HTML+script+css+images
– JSF
“Renderer”:
• encode:
markup
to
browser
• decode:
name=value
from
browser
<html>…
<my:colorPicker value=“#{colorBean.color2}” />
<my:calendar value=“#{calendarBean.date1}” />
</html>
• Context:
Missing
feature
in
browser?
Write
a
JSF
component.
24. 1090
HTML5
Friendly
Markup
Copyright
©
2014,
Oracle
and/or
its
affiliates.
All
rights
reserved.
|
Let
the
elegance
of
HTML
shine
through
• With
JSF
2.2
– Pure
HTML+script+css+images
in
the
JSF
page
– JSF
Renderer
handles
decode
from
browser
• Leverage
the
strength
of
the
JSF
lifecycle
• Leverage
the
expressiveness
of
HTML5
<html>…
<input type=“color” jsf:value=“#{colorBean.color2}”/>
<input type=“date” jsf:value=“#{calendarBean.date1}” />
</html>
• Context:
New
feature
in
browser?
Use
“pass
through
elements”
25. 1142
Resource
Library
Contracts
730
Faces
Flows
Modularity and Multi-tenant capability
Copyright
©
2014,
Oracle
and/or
its
affiliates.
All
rights
reserved.
|
• Allow
composing
a
JSF
app
as
a
collecGon
of
modules
– Faces
Flows
modularize
behavior
– Resource
Library
Contracts
modularize
appearance
• Well
defined
contract
for
each
26. Copyright
©
2014,
Oracle
and/or
its
affiliates.
All
rights
reserved.
|
Resource
Library
Contracts
A
Contract
is
Born
contractA
• Declared Templates
• Declared Insertion Points
• Declared Resources
27. Copyright
©
2014,
Oracle
and/or
its
affiliates.
All
rights
reserved.
|
Resource
Library
Contracts
Loading
ConvenGons
<web-app-root>/contracts
contractA
contractB
• Declared Templates
• Declared Insertion contractC
Points
• Declared Resources
• Declared Templates
• Declared Insertion Points
• Declared Resources
• Declared Templates
• Declared Insertion Points
• Declared Resources
28. JAR files in WEB-INF/lib
contractE
Copyright
©
2014,
Oracle
and/or
its
affiliates.
All
rights
reserved.
|
Resource
Library
Contracts
Loading
ConvenGons
<web-app-root>/contracts
contractA
contractB
• Declared Templates
• Declared Insertion contractC
Points
• Declared Resources
• Declared Templates
• Declared Insertion Points
• Declared Resources
• Declared Templates
• Declared Insertion Points
• Declared Resources
contractD
• Declared Templates
• Declared Insertion contractF
Points
• Declared Resources
• Declared Templates
• Declared Insertion Points
• Declared Resources
• Declared Templates
• Declared Insertion Points
• Declared Resources
29. <web-app-root>/contracts
contractB
contractC
JAR files in WEB-INF/lib
faces-config.xml
Copyright
©
2014,
Oracle
and/or
its
affiliates.
All
rights
reserved.
|
Resource
Library
Contracts
Loading
ConfiguraGon
contractA
• Declared Templates
• Declared Insertion Points
• Declared Resources
• Declared Templates
• Declared Insertion Points
• Declared Resources
• Declared Templates
• Declared Insertion Points
• Declared Resources
contractD
contractE
• Declared Templates
• Declared Insertion contractF
Points
• Declared Resources
• Declared Templates
• Declared Insertion Points
• Declared Resources
• Declared Templates
• Declared Insertion Points
• Declared Resources
Set of available contracts
Facelet 1
<f:view contracts="contractA">
...
Facelet 2 Facelet 3
30. Copyright
©
2014,
Oracle
and/or
its
affiliates.
All
rights
reserved.
|
Flow
NavigaGon
• NavigaGon
is
no
longer
just
between
pages
• NavigaGon
is
now
between
flow
“nodes”
• InformaGon
Hiding
comes
to
JSF.
Welcome
to
1972!
• MulGple
node
types:
– View
– Method
Call
– Switch
– Flow
Call
– Flow
Return
31. Copyright
©
2014,
Oracle
and/or
its
affiliates.
All
rights
reserved.
|
Flow
DefiniGon
• Name
of
the
flow
• Where
does
the
flow
start?
• Input
values
• OpGonal
iniGalizer
&
finalizer
32. Safe
Harbor
Statement
The
preceding
is
intended
to
outline
our
general
product
direcGon.
It
is
intended
for
informaGon
purposes
only,
and
may
not
be
incorporated
into
any
contract.
It
is
not
a
commitment
to
deliver
any
material,
code,
or
funcGonality,
and
should
not
be
relied
upon
in
making
purchasing
decisions.
The
development,
release,
and
Gming
of
any
features
or
funcGonality
described
for
Oracle’s
products
remains
at
the
sole
discreGon
of
Oracle.
Copyright
©
2014,
Oracle
and/or
its
affiliates.
All
rights
reserved.
|