-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.html
314 lines (281 loc) · 9.39 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta content="IE=Edge" http-equiv="X-UA-Compatible">
<meta content="width=device-width, initial-scale=1.0" name="viewport">
<title>
Jakarta Validation - Home
</title>
<link href="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.2.13/semantic.min.css" rel="stylesheet">
<link href="/stylesheets/styles.css?t=1741863341" rel="stylesheet">
<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.2.13/semantic.min.js"></script>
<!-- / Unfortunately, matchHeight doesn't follow the same convention as the other minified files -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.matchHeight/0.7.2/jquery.matchHeight-min.js"></script>
<link href="/news/news.atom" rel="alternate" type="application/atom+xml">
</head>
<body class="pushable">
<div class="ui vertical menu inverted sidebar left print hidden" id="mobile-menu">
<a class="item selected" href="/" title="Home">
<i class="grid icon home"></i>
Home
</a>
<a class="item" href="/news/">
<i class="grid icon newspaper"></i>
News
</a>
<a class="item" href="/3.1/">
<i class="grid icon book"></i>
<strong>Jakarta Validation 3.1</strong>
</a>
<div class="item">
<i class="grid icon archive"></i>
Archives
<div class="menu">
<a class="item" href="/3.0/">
<i class="grid icon book"></i>
Jakarta Bean Validation 3.0
</a>
<a class="item" href="/2.0/">
<i class="grid icon book"></i>
Jakarta Bean Validation 2.0
</a>
<a class="item" href="/2.0-jsr380/">
<i class="grid icon book"></i>
Bean Validation 2.0 (JSR 380)
</a>
<a class="item" href="/1.1/">
<i class="grid icon book"></i>
Bean Validation 1.1 (JSR 349)
</a>
<a class="item" href="/1.0/">
<i class="grid icon book"></i>
Bean Validation 1.0 (JSR 303)
</a>
</div>
</div>
<a class="item" href="/resources/">
<i class="grid icon folder open"></i>
Additional resources
</a>
<a class="item" href="/licensing/">
<i class="grid icon legal"></i>
Licensing
</a>
<a class="item" href="/contribute/">
<i class="grid icon users"></i>
Contribute
</a>
</div>
<div class="pusher">
<div class="mobile-menu-button-bar mobile only print hidden">
<a class="item" id="mobile-menu-toggle">
<i class="sidebar icon"></i>
Menu
</a>
</div>
<header role="banner">
<div class="ui container banner">
<div class="ui stackable menu mobile hidden print hidden" id="nav">
<a class="item selected" href="/" title="Home">
<img alt="Bean Validation" src="/logo/logo.svg">
</a>
<a class="item" href="/news/">News</a>
<a class="item" href="/3.1/">
<strong>Jakarta Validation 3.1</strong>
</a>
<div class="ui dropdown item">
Archives
<i class="dropdown icon"></i>
<div class="menu">
<a class="item" href="/3.0/">Jakarta Bean Validation 3.0</a>
<a class="item" href="/2.0/">Jakarta Bean Validation 2.0</a>
<a class="item" href="/2.0-jsr380/">Bean Validation 2.0 (JSR 380)</a>
<a class="item" href="/1.1/">Bean Validation 1.1 (JSR 349)</a>
<a class="item" href="/1.0/">Bean Validation 1.0 (JSR 303)</a>
</div>
</div>
<a class="item" href="/resources/">Resources</a>
<a class="item" href="/licensing/">Licensing</a>
<a class="item" href="/contribute/">Contribute</a>
</div>
</div>
</header>
<div class="jumbotron">
<div class="ui container text-center">
<div class="logo">
<img alt="Jakarta Validation" src="logo/logo.svg">
</div>
<h1>Jakarta Validation</h1>
<h2>Constrain once, validate everywhere</h2>
<div class="text-center">
<a class="ui button icon right labeled green big" href="3.1">
<i class="icon arrow right"></i>
Jakarta Validation 3.1
</a>
</div>
</div>
</div>
<div class="content-banner">
<div class="ui container">
<h2>
<span>Latest news</span>
<small>
Stay up to date, subscribe to the <a href="/news/news.atom">news feed</a>.
</small>
</h2>
<div class="ui grid equal height three column news stackable">
<div class="column">
<div class="ui segment">
<h3>
<a href="/news/2025/02/17/bean-validation-3-1/">Jakarta Validation 3.1 specification</a>
</h3>
<div class="date">
17 February 2025
</div>
<p>
Jakarta Validation 3.1 was released earlier in 2024.
What’s new in Bean Validation 3.1?
The 3.1 update of the specification, compared to 3.0, brings the following changes:
The minimum required Java version is...
</p>
</div>
</div>
<div class="column">
<div class="ui segment">
<h3>
<a href="/news/2018/02/26/bean-validation-2-0-whats-in-it/">Bean Validation 2.0 - What’s in it?</a>
</h3>
<div class="date">
26 February 2018
</div>
<p>
While a couple of months have passed since Bean Validation 2.0 got released, the info about what’s new in the spec may still not yet have reached everyone.
Here are two...
</p>
</div>
</div>
<div class="column">
<div class="ui segment">
<h3>
<a href="/news/2017/10/19/new-website/">Bean Validation has a new website!</a>
</h3>
<div class="date">
19 October 2017
</div>
<p>
Bean Validation just got a new website and we hope you will like it!
New layout
We developed a more modern layout based on Semantic UI.
It should be easier to the eye...
</p>
</div>
</div>
</div>
<div class="text-right">
<a class="ui button icon right labeled" href="news">
<i class="icon arrow right"></i>
More news...
</a>
</div>
</div>
</div>
<div class="ui container">
<div class="content" id="content">
<div class="sect1">
<h2 id="what-is-jakarta-validation"><a class="anchor" href="#what-is-jakarta-validation"></a>What is Jakarta Validation</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Jakarta Validation is a Java specification which</p>
</div>
<div class="ulist">
<ul>
<li>
<p>lets you express constraints on object models via annotations</p>
</li>
<li>
<p>lets you write custom constraints in an extensible way</p>
</li>
<li>
<p>provides the APIs to validate objects and object graphs</p>
</li>
<li>
<p>provides the APIs to validate parameters and return values of methods
and constructors</p>
</li>
<li>
<p>reports the set of violations (localized)</p>
</li>
<li>
<p>runs on Java SE and is integrated in Jakarta EE</p>
</li>
</ul>
</div>
<div class="listingblock">
<div class="content">
<pre class="CodeRay highlight"><code data-lang="java"><span style="color:#088;font-weight:bold">public</span> <span style="color:#339;font-weight:bold">class</span> <span style="color:#B06;font-weight:bold">User</span> {

 <span style="color:#088;font-weight:bold">private</span> <span style="color:#0a8;font-weight:bold">String</span> email;

 <span style="color:#007">@NotNull</span> <span style="color:#007">@Email</span>
 <span style="color:#088;font-weight:bold">public</span> <span style="color:#0a8;font-weight:bold">String</span> getEmail() {
 <span style="color:#080;font-weight:bold">return</span> email;
 }

 <span style="color:#088;font-weight:bold">public</span> <span style="color:#339;font-weight:bold">void</span> setEmail(<span style="color:#0a8;font-weight:bold">String</span> email) {
 <span style="color:#950">this</span>.email = email;
 }
}

<span style="color:#088;font-weight:bold">public</span> <span style="color:#339;font-weight:bold">class</span> <span style="color:#B06;font-weight:bold">UserService</span> {

 <span style="color:#088;font-weight:bold">public</span> <span style="color:#339;font-weight:bold">void</span> createUser(<span style="color:#007">@Email</span> <span style="color:#0a8;font-weight:bold">String</span> email,
 <span style="color:#007">@NotNull</span> <span style="color:#0a8;font-weight:bold">String</span> name) {
 ...
 }
}</code></pre>
</div>
</div>
<div class="paragraph">
<p>While you can run validation manually, it is more natural to
let other specifications and frameworks validate data at the right
time (user input in presentation frameworks, business service
execution by CDI, entity insert or update by JPA).</p>
</div>
<div class="paragraph">
<p>In other words, <em>run once, constrain anywhere</em>.</p>
</div>
</div>
</div>
<div class="spec-buttons text-center">
<a class="ui button large green right labeled icon" href="/3.1/">
<i class="icon arrow right"></i>
Learn more and get the specification...
</a>
</div>
</div>
</div>
<script>
$(document).ready(function() {
$('.news .ui.segment').matchHeight({ byRow: false });
});
</script>
<footer class="print hidden">
<div class="ui inverted vertical footer segment">
<div class="ui container">
<div class="ui stackable grid">
<div class="eleven wide column middle aligned">
Copyright © Red Hat, Inc.
</div>
<div class="five wide column sponsor">
<div class="logo">
<a href="https://www.redhat.com/">
<img src="/images/sponsored-by-redhat.svg" style="height: 40px" title="Red Hat">
</a>
</div>
</div>
</div>
</div>
</div>
</footer>
</div>
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-24703879-1', 'auto');
ga('send', 'pageview');
</script>
<script>
$(document).ready(function() {
$('#mobile-menu').sidebar('setting', {
transition: 'push'
});
$('#mobile-menu').sidebar('attach events', '#mobile-menu-toggle');
$('.ui.menu .ui.dropdown').dropdown({ on: 'hover' });
});
</script>
</body>
</html>