Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit eb64dbb

Browse files
committed
20210914 spring validation
1 parent a21e583 commit eb64dbb

File tree

8 files changed

+68
-32
lines changed

8 files changed

+68
-32
lines changed

‎pom.xml‎

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -333,6 +333,18 @@
333333
<systemPath>${basedir}/src/main/webapp/WEB-INF/lib/ojdbc6.jar</systemPath>
334334
</dependency>
335335

336+
<dependency>
337+
<groupId>javax.validation</groupId>
338+
<artifactId>validation-api</artifactId>
339+
<version>2.0.1.Final</version>
340+
</dependency>
341+
342+
<dependency>
343+
<groupId>org.hibernate.validator</groupId>
344+
<artifactId>hibernate-validator</artifactId>
345+
<version>6.0.7.Final</version>
346+
</dependency>
347+
336348
<dependency>
337349
<groupId>org.springframework</groupId>
338350
<artifactId>spring-context-support</artifactId>
@@ -345,18 +357,6 @@
345357
<artifactId>spring-data-redis</artifactId>
346358
<version>2.4.0</version>
347359
</dependency>
348-
349-
<dependency>
350-
<groupId>io.projectreactor</groupId>
351-
<artifactId>reactor-core</artifactId>
352-
<version>3.2.5.RELEASE</version>
353-
</dependency>
354-
355-
<dependency>
356-
<groupId>io.lettuce</groupId>
357-
<artifactId>lettuce-core</artifactId>
358-
<version>6.1.3.RELEASE</version>
359-
</dependency>
360360

361361
<dependency>
362362
<groupId>net.sf.ehcache</groupId>

‎src/main/java/com/singer/controller/SM01Controller.java‎

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import javax.inject.Inject;
77
import javax.servlet.http.HttpServletRequest;
88
import javax.servlet.http.HttpServletResponse;
9+
import javax.validation.Valid;
910

1011
import org.apache.commons.io.IOUtils;
1112
import org.apache.commons.logging.Log;
@@ -43,8 +44,8 @@ public ModelAndView joinPage() {
4344
}
4445

4546
@RequestMapping(value = "/sm01", method = RequestMethod.POST)
46-
public ResponseEntity<SM01Vo> insertSM01Vo(@ModelAttribute SM01Vo sm01Vo,MultipartHttpServletRequestrequest)
47-
throws Exception {
47+
public ResponseEntity<SM01Vo> insertSM01Vo(@ModelAttribute @ValidSM01Vo sm01Vo,
48+
MultipartHttpServletRequestrequest) throws Exception {
4849
log.debug("enter sm01 pot");
4950
sm01Service.insertSM01Vo(sm01Vo, request);
5051

‎src/main/java/com/singer/controller/SM02Controller.java‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
import javax.inject.Inject;
66
import javax.servlet.http.HttpServletRequest;
7+
import javax.validation.Valid;
78

89
import org.apache.commons.logging.Log;
910
import org.apache.commons.logging.LogFactory;
@@ -67,7 +68,7 @@ public ResponseEntity<SM02Vo> deleteSM02Vo(@ModelAttribute SM02Vo sm02Vo, HttpSe
6768

6869
@ResponseBody
6970
@RequestMapping(value = "/sm02", method = RequestMethod.POST)
70-
public ResponseEntity<SM02Vo> insertSM02Vo(@RequestBody SM02Vo sm02Vo, HttpServletRequest request)
71+
public ResponseEntity<SM02Vo> insertSM02Vo(@RequestBody @ValidSM02Vo sm02Vo, HttpServletRequest request)
7172
throws Exception {
7273
log.debug("enter sm02 post");
7374

‎src/main/java/com/singer/exception/CommonExceptionHandler.java‎

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,9 @@
1414
import org.apache.commons.logging.LogFactory;
1515
import org.springframework.http.HttpStatus;
1616
import org.springframework.lang.NonNull;
17+
import org.springframework.validation.BindingResult;
18+
import org.springframework.validation.FieldError;
19+
import org.springframework.web.bind.MethodArgumentNotValidException;
1720
import org.springframework.web.bind.annotation.ControllerAdvice;
1821
import org.springframework.web.bind.annotation.ExceptionHandler;
1922
import org.springframework.web.bind.annotation.ResponseStatus;
@@ -122,6 +125,41 @@ public ModelAndView noHandlerFoundException(HttpServletRequest request, NoHandle
122125
return getErrorModelAndView(CommonUtil.ajaxCheck(request), "error Url" + errorURL + " || " + ext.getMessage());
123126
}
124127

128+
@ExceptionHandler(MethodArgumentNotValidException.class)
129+
public ModelAndView methodArgumentNotValidException(HttpServletRequest request, HttpServletResponse response,
130+
MethodArgumentNotValidException ext) throws IOException {
131+
132+
if (CommonUtil.ajaxCheck(request)) {
133+
Function<MethodArgumentNotValidException, ModelAndView> func = (ex) -> {
134+
ModelAndView mv = new ModelAndView("forward:/error");
135+
mv.addObject("errorCode", HttpStatus.BAD_REQUEST);
136+
mv.addObject("errorMsg", makeValidErrorMessage(ex.getBindingResult()));
137+
return mv;
138+
};
139+
return func.apply(ext);
140+
} else {
141+
Function<MethodArgumentNotValidException, ModelAndView> func = (ex) -> {
142+
ModelAndView mv = new ModelAndView("forward:/" + HttpStatus.BAD_REQUEST.value());
143+
mv.addObject("errorCode", HttpStatus.BAD_REQUEST);
144+
mv.addObject("errorMsg", makeValidErrorMessage(ex.getBindingResult()));
145+
return mv;
146+
};
147+
return func.apply(ext);
148+
}
149+
}
150+
151+
private String makeValidErrorMessage(BindingResult bindingResult) {
152+
StringBuilder builder = new StringBuilder();
153+
for (FieldError fieldError : bindingResult.getFieldErrors()) {
154+
builder.append("[");
155+
// builder.append(fieldError.getField());
156+
builder.append(fieldError.getDefaultMessage());
157+
builder.append("]");
158+
}
159+
160+
return builder.toString();
161+
}
162+
125163
@ExceptionHandler(Exception.class)
126164
public ModelAndView exceptionHandler(HttpServletRequest request, Exception ext) {
127165
log.info("defaultException");

‎src/main/java/com/singer/service/SM01ServiceImpl.java‎

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -44,17 +44,6 @@ public class SM01ServiceImpl implements SM01Service {
4444
public HashMap<String, Object> insertSM01Vo(SM01Vo sm01Vo, MultipartHttpServletRequest request) throws Exception {
4545
HashMap<String, Object> hashMap = new HashMap<String, Object>();
4646

47-
if (StringUtils.isEmpty(sm01Vo.getUserid())) {
48-
throw new AppException(ExceptionMsg.EXT_MSG_INF_1);
49-
}
50-
if (StringUtils.isEmpty(sm01Vo.getPasswd())) {
51-
throw new AppException(ExceptionMsg.EXT_MSG_INF_2);
52-
}
53-
54-
if (StringUtils.isEmpty(sm01Vo.getUsername())) {
55-
throw new AppException(ExceptionMsg.EXT_MSG_INF_3);
56-
}
57-
5847
// String pw = aes256Util.aesEncode(sm01Vo.getPasswd());
5948
// sm01Vo.setPasswd(pw);
6049

‎src/main/java/com/singer/service/SM02ServiceImpl.java‎

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,6 @@ public class SM02ServiceImpl implements SM02Service {
2424
@Override
2525
public int insertSM02Vo(SM02Vo sm02Vo, String userid) throws Exception {
2626

27-
if (StringUtils.isEmpty(sm02Vo.getTitle())) {
28-
throw new AppException(ExceptionMsg.EXT_MSG_INPUT_1);
29-
}
30-
if (StringUtils.isEmpty(sm02Vo.getText())) {
31-
throw new AppException(ExceptionMsg.EXT_MSG_INPUT_2);
32-
}
3327
sm02Vo.setUserid(userid);
3428
sm02Vo.setRegdate(DateUtil.getTodayTime());
3529
return sm02Dao.insertSM02Vo(sm02Vo);

‎src/main/java/com/singer/vo/BoardVo.java‎

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
package com.singer.vo;
22

3+
import javax.validation.constraints.NotEmpty;
4+
5+
import com.singer.exception.ExceptionMsg;
6+
37
import lombok.AccessLevel;
48
import lombok.Getter;
59
import lombok.NoArgsConstructor;
@@ -12,7 +16,9 @@ public class BoardVo extends SuperVo {
1216

1317
private static final long serialVersionUID = 7956711521174141824L;
1418
protected int seq;
19+
@NotEmpty(message = ExceptionMsg.EXT_MSG_INPUT_1)
1520
protected String title;
21+
@NotEmpty(message = ExceptionMsg.EXT_MSG_INPUT_2)
1622
protected String text;
1723
protected String userid;
1824
protected String regdate;

‎src/main/java/com/singer/vo/SM01Vo.java‎

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,14 @@
22

33
import java.util.List;
44

5+
import javax.validation.constraints.NotEmpty;
6+
57
import org.springframework.web.multipart.MultipartFile;
68

79
import com.singer.common.CommonUtil;
810
import com.singer.common.Constants.PHONE_INFO_CODE;
911
import com.singer.common.Constants.USER_CODE;
12+
import com.singer.exception.ExceptionMsg;
1013

1114
import lombok.EqualsAndHashCode;
1215
import lombok.Getter;
@@ -22,8 +25,12 @@
2225
public class SM01Vo extends SuperVo {
2326

2427
private static final long serialVersionUID = 5452779898991723254L;
28+
29+
@NotEmpty(message = ExceptionMsg.EXT_MSG_INF_1)
2530
private String userid;
31+
@NotEmpty(message = ExceptionMsg.EXT_MSG_INF_2)
2632
private String passwd;
33+
@NotEmpty(message = ExceptionMsg.EXT_MSG_INF_3)
2734
private String username;
2835
private String brth;
2936
private USER_CODE grade;

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /