Skip to content

Commit 89fbd9c

Browse files
committed
Information Validation Added To Class Level And Synchronize With Page.
1 parent b9e4517 commit 89fbd9c

File tree

5 files changed

+62
-14
lines changed

5 files changed

+62
-14
lines changed

pom.xml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,13 @@
4444
<groupId>org.springframework.data</groupId>
4545
<artifactId>spring-data-mongodb</artifactId>
4646
</dependency>
47+
48+
<dependency>
49+
<groupId>commons-validator</groupId>
50+
<artifactId>commons-validator</artifactId>
51+
<version>1.5.0</version>
52+
</dependency>
53+
4754
</dependencies>
4855

4956

src/main/java/guru/springframework/controller/InformationController.java

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,16 @@
11
package guru.springframework.controller;
22

3+
import javax.validation.Valid;
4+
35
import guru.springframework.domain.Information;
46
import guru.springframework.service.InformationService;
57

68
import org.springframework.beans.factory.annotation.Autowired;
79
import org.springframework.context.annotation.Configuration;
810
import org.springframework.stereotype.Controller;
911
import org.springframework.ui.Model;
12+
import org.springframework.validation.BindingResult;
13+
import org.springframework.validation.ObjectError;
1014
import org.springframework.web.bind.annotation.PathVariable;
1115
import org.springframework.web.bind.annotation.RequestMapping;
1216
import org.springframework.web.bind.annotation.RequestMethod;
@@ -27,21 +31,30 @@ public String createInformation(Model model) {
2731
}
2832

2933
@RequestMapping(value = "/save", method = RequestMethod.POST)
30-
public String createInformation(Information information) {
34+
public String createInformation(@Valid Information information,
35+
BindingResult bindingErrors) {
3136
System.out.println("[DEBUG] [/information/save]");
3237
System.out.println(information);
38+
39+
if (bindingErrors.hasErrors()) {
40+
for (ObjectError er : bindingErrors.getAllErrors()) {
41+
System.out.println(er);
42+
}
43+
return "new-create";
44+
}
45+
3346
informationService.saveOrUpdate(information);
3447
return "redirect:/";
3548
}
36-
49+
3750
@RequestMapping(value = "/edit/{id}", method = RequestMethod.GET)
3851
public String editInformation(@PathVariable String id, Model model) {
3952
System.out.println("[DEBUG] [/information/edit/{id}" + id + "]");
4053
Information information = informationService.getInformationById(id);
4154
model.addAttribute("information", information);
4255
return "new-create";
4356
}
44-
57+
4558
@RequestMapping(value = "/delete/{id}", method = RequestMethod.GET)
4659
public String deleteInformation(@PathVariable String id) {
4760
System.out.println("[DEBUG] [/information/delete/{id}]");

src/main/java/guru/springframework/domain/Information.java

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,34 @@
11
package guru.springframework.domain;
22

3+
import javax.validation.constraints.Max;
4+
import javax.validation.constraints.NotNull;
5+
import javax.validation.constraints.Pattern;
6+
import javax.validation.constraints.Size;
7+
8+
import org.hibernate.validator.constraints.Email;
9+
import org.jboss.logging.Message;
310
import org.springframework.data.annotation.Id;
411
import org.springframework.data.mongodb.core.mapping.Document;
512

613
@Document(collection = "informations")
714
public class Information {
815
@Id
916
private String id = "";
17+
18+
@NotNull
19+
@Size(min = 3, max = 50, message = "Name must be between 3 to 50")
1020
private String name;
21+
22+
@NotNull
23+
@Pattern(regexp = "^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$", message = "Invalid email address")
1124
private String email;
25+
26+
@NotNull
27+
@Size(min = 2, max = 4, message = "Batch must be between 2 to 4")
1228
private String batch;
29+
30+
@NotNull
31+
@Size(min = 3, max = 50, message = "Interest must be between 3 to 50")
1332
private String interested;
1433

1534
public Information() {

src/main/resources/static/metro/pages/scripts/table-advanced.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -166,10 +166,10 @@ var TableAdvanced = function () {
166166
function fnFormatDetails(oTable, nTr) {
167167
var aData = oTable.fnGetData(nTr);
168168
var sOut = '<table>';
169-
sOut += '<tr><td>Platform(s):</td><td>' + aData[2] + '</td></tr>';
170-
sOut += '<tr><td>Engine version:</td><td>' + aData[3] + '</td></tr>';
171-
sOut += '<tr><td>CSS grade:</td><td>' + aData[4] + '</td></tr>';
172-
sOut += '<tr><td>Others:</td><td>Could provide a link here</td></tr>';
169+
sOut += '<tr><td>Name:</td><td>' + aData[1] + '</td></tr>';
170+
sOut += '<tr><td>Email:</td><td>' + aData[2] + '</td></tr>';
171+
sOut += '<tr><td>Batch:</td><td>' + aData[3] + '</td></tr>';
172+
sOut += '<tr><td>Interest:</td><td>' + aData[4] + '</td></tr>';
173173
sOut += '</table>';
174174

175175
return sOut;

src/main/resources/templates/new-create.html

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -64,24 +64,33 @@
6464

6565
<div class="form-body">
6666
<div class="form-group form-md-line-input">
67-
<input type="text" class="form-control" th:field="*{name}"
67+
<label th:if="${#fields.hasErrors('name')}" style="color:red;"
68+
th:errors="*{name}">Name fields error</label> <input
69+
type="text" class="form-control" th:field="*{name}"
6870
id="name" name="name" /> <label for="name">Name</label>
69-
7071
</div>
7172
<div class="form-group form-md-line-input">
72-
<input type="text" class="form-control" th:field="*{email}"
73+
<label th:if="${#fields.hasErrors('email')}" style="color:red;"
74+
th:errors="*{email}">Email fields error</label> <input
75+
type="text" class="form-control" th:field="*{email}"
7376
id="email" name="email" /> <label for="email">Email</label>
7477

78+
7579
</div>
7680
<div class="form-group form-md-line-input">
77-
<input type="text" class="form-control" id="batch"
81+
<label th:if="${#fields.hasErrors('batch')}" style="color:red;"
82+
th:errors="*{batch}">Batch fields error</label> <input
83+
type="text" class="form-control" id="batch"
7884
th:field="*{batch}" name="batch" /> <label for="batch">Batch</label>
7985

86+
8087
</div>
8188
<div class="form-group form-md-line-input">
82-
<input type="text" class="form-control"
83-
th:field="*{interested}" id="interested" name="interested" />
84-
<label for="interested">Interested</label>
89+
<label th:if="${#fields.hasErrors('interested')}"
90+
th:errors="*{interested}" style="color:red;">Interested fields error</label> <input
91+
type="text" class="form-control" th:field="*{interested}"
92+
id="interested" name="interested" /> <label
93+
for="interested">Interested</label>
8594
</div>
8695
</div>
8796
<div class="form-actions noborder">

0 commit comments

Comments
 (0)