Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- myBatis
- SQLD
- jQuery
- github
- error
- 기업설명회
- 스파르타코딩클럽
- 티스토리챌린지
- 깃허브
- 오블완
- Firebase
- java
- Spring Security
- 이클립스
- Eclipse
- bootstrap
- 코딩
- JavaScript
- ChatGPT
- vscode
- 자바
- 배포
- spring
- CSS
- SQL
- restapi
- AJAX
- 웹개발
- 김영한
- HTML
Archives
- Today
- Total
푸들푸들
1210 코드 실행시간 설정, lombok 생성자, 유효성 검사 본문
@RestController
@RestController
public class UserRest {
@GetMapping(path = "/userJson")
public List<Map<String,Object>> user(){
List<Map<String,Object>> list = new ArrayList<>();
Map<String,Object> u1 = new HashMap<String,Object>();
u1.put("name", "user1");
u1.put("age", 20);
list.add(u1);
Map<String,Object> u2= new HashMap<String,Object>();
u2.put("name", "user1");
u2.put("age", 20);
list.add(u2);
Map<String,Object> u3 = new HashMap<String,Object>();
u3.put("name", "user1");
u3.put("age", 20);
list.add(u3);
return list;
}
}
@RestController: 반환값을 자동으로 JSON 문자열로 변환되어 반환함
기본값: @GetMapping(path = "/userJson", produces = MediaType.APPLICATION_JSON_VALUE)
@RestController의 맵핑 메서드의 반환 타입: List<Map<String,Object>>
public static final String APPLICATION_JSON_VALUE = "application/json";
/**
* Public constant media type for {@code application/json;charset=UTF-8}.
* @deprecated as of 5.2 in favor of {@link #APPLICATION_JSON}
* since major browsers like Chrome
* <a href="https://bugs.chromium.org/p/chromium/issues/detail?id=438464">
* now comply with the specification</a> and interpret correctly UTF-8 special
* characters without requiring a {@code charset=UTF-8} parameter.
*/
MediaType.class
http://localhost/userJson
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-xml</artifactId>
</dependency>
--> pom.xml에 의존성 추가하면 XML타입으로 변환도 가능
@RestController
public class UserRest {
@GetMapping(path = "/userXml", produces = MediaType.APPLICATION_XML_VALUE)
public List<Map<String,Object>> userXml(){
List<Map<String,Object>> list = new ArrayList<>();
Map<String,Object> u1 = new HashMap<String,Object>();
u1.put("name", "user1");
u1.put("age", 20);
list.add(u1);
Map<String,Object> u2= new HashMap<String,Object>();
u2.put("name", "user1");
u2.put("age", 20);
list.add(u2);
Map<String,Object> u3 = new HashMap<String,Object>();
u3.put("name", "user1");
u3.put("age", 20);
list.add(u3);
return list;
}
}
코드 실행 시간 특정
(Ex)Application.java에 @EnableScheduling 추가
( ): 프로젝트 이름
@Component
public class MySchedule {
@Scheduled(cron="0 0 7 1 * *")
public void scheduleTest() {
// 특정 날짜에 실행될 코드
System.out.println("스케줄링 테스트");
}
}
매월 1일 오전 7시
생성자(롬복)
@Data
@AllArgsConstructor
@NoArgsConstructor
public class MemberCommand {
private String name;
private int age;
}
@AllArgsConstructor -> MemberCommand(String,int)
- 모든 필드마다 하나의 파라미터값을 가진 생성자 생성
- 순서 주의
@NoArgsConstructor -> MemberCommand - 파라미터값 없는 기본 생성자 생성
validation을 이용한 커맨드객체 유효성 검사
https://cafe.naver.com/jjdev/16191
[41] springboot validation을 이용한 커맨드객체 유효성 검사
1) validation 의존성 추가 pom.xml 의존성 확인 2) 커맨드 객체의 유효성 체크 ※ 커맨드 객체의 유효성 체크 애노테이션 종류(하나의 필드에 겹처사용 가능) ...
cafe.naver.com
@Controller
public class MemberController {
// 백엔드 유효성 검사 Spring API
@GetMapping("/addMember")
public String addMember() {
return "addMember";
}
@PostMapping("/addMember")
public String addMember(@Valid MemberCommand memberCommand, Errors err, Model model) {
System.out.println(memberCommand.toString());
System.out.println(err.hasErrors()); // MemberCommand m 매개값을 채울 때 에러 유무
// 유효성 검사에 걸려서 입력 실패
if(err.hasErrors()) {
for(FieldError fe : err.getFieldErrors()) {
System.out.println(fe.getField()); // name
System.out.println(fe.getDefaultMessage()); // message
model.addAttribute(fe.getField()+"Msg", fe.getDefaultMessage());
}
return "addMember"; // 유효성 체크에 걸리면 Command 객체 + Msg 입력폼으로 다시 포워딩
}
// 입력 성공 시
// insert sql 호출 서비스
return "redirect:/";
}
}
@Data
@AllArgsConstructor
@NoArgsConstructor
public class MemberCommand {
@Size(min=2, message = "이름을 2자 이상 입력하세요")
private String name;
}
post 되기 전 유효성 검사가 됨
<body>
<h1>ADD</h1>
<form method="post" action="/addMember">
name :
<input type="text" name="name" value="${memberCommand.name}">
<button type="submit">가입</button>
<br><span>${nameMsg}</span>
</form>
</body>
'구디아카데미 > JAVA' 카테고리의 다른 글
1211 Javascript, AJax, RestAPI select+조건 (0) | 2024.12.11 |
---|---|
1210 Javascript 퍼머링크, 차트 (0) | 2024.12.10 |
1209 (0) | 2024.12.09 |
1209 (0) | 2024.12.09 |
1120 [Mall] 설계 (0) | 2024.11.20 |