!!!
전자정부 페이징은 gradle 지원 안한다
(편법사용)
#
<span th:text="${#lists.size(board)}"></span>
th:unless=""
에는 th:if=""
와 같은 조건이 들어간다...
그냥 아니면 이렇게 해라~(if(!조건)
) 이런 뜻이어서 따로 써도 되는지 if랑 꼭 같이 써야하는지는 모르겠다
<button type="button" class="btn btn-outline-dark" onclick="location.href='/write?cate=${board[0].mtcate}'">글쓰기</button>
이건 안됨.
-> 결과가 http://localhost/write?cate=${board[0].mtcate}
이렇게 나옴.
변수를 써야한다.
<button type="button" th:with="cate=${board[0].mtcate}"
class="btn btn-outline-dark" th:onclick="|location.href='@{/write(cate=${cate})}'|">글쓰기</button>
th:with="cate=${board[0].mtcate}"
이렇게 변수를 선언해주고
th:onclick="|location.href='@{/write(cate=${cate})}'|"
파이프로 감싸서 링크까지 해줘야 한다.
param.cate? <- 파라미터가 안들어오면 문제, 안 들어올 때 막아주고 그런게 필요하다,,,
<button type="button" class="btn btn-outline-dark" th:onclick="|location.href='@{/write(cate=${param.cate})}'|">글쓰기</button>
// 글 쓰고 자기가 쓴 글로 이동시키려면 mybatis selectKey
@PostMapping("/write")
public String write(@RequestParam Map<String, Object> map) {
System.out.println(map);
return "write";
}
글써보면 이렇게 온다.
일단 form으로 했는데 가상 form 복습할것
확인,,
Util에는 @Component
어노테이션을 붙여준다.
public HttpServletRequest req() {
ServletRequestAttributes sra = (ServletRequestAttributes) RequestContextHolder.currentRequestAttributes();
HttpServletRequest request = sra.getRequest();
return request;
}
public HttpSession getSession() {
HttpSession session = req().getSession();
return session;
}
// ip
public String getIP() {
HttpServletRequest request = req();
String ip = request.getHeader("X-FORWARDED-FOR");
if (ip == null) {
ip = request.getHeader("Proxy-Client-IP");
}
if (ip == null) {
ip = request.getHeader("WL-Proxy-Client-IP");
}
if (ip == null) {
ip = request.getHeader("HTTP_CLIENT_IP");
}
if (ip == null) {
ip = request.getHeader("HTTP_X_FORWARDED_FOR");
}
if (ip == null) {
ip = request.getRemoteAddr();
}
return ip;
}
(안썼나,,)
https://late90.tistory.com/347
https://programmer93.tistory.com/27
JSON 쓸 때 좋다.
key 되는거 int까지만 된다. (String 말고 Object 안됨)
jdk 17 말고는 case에 1, 2 이렇게 못 씀
switch 결과를 String에 받기도 가능.
application.properties에 세션 지속시간을 적는다
#session time out = 3600 -> 1시간, 1800 -> 30분
server.servlet.session.timeout=3600
@GetMapping("/logout")
public String logout(HttpSession session) {
//HttpSession session = util.getSession();
if(session.getAttribute("mid") != null) {
session.removeAttribute("mid");
}
if(session.getAttribute("mname") != null) {
session.removeAttribute("mname");
}
session.invalidate();
return "redirect:/login";
}
https://memo-the-day.tistory.com/132
<li class="nav-item"><a class="nav-link me-lg-3" th:href="@{/myInfo@{id}(id = ${session.mid})}">안녕, [[${session.mname}]]!</a></li>
바로 여기
있는 아이디와 패스워드로 테스트해보면 결과창이 초록!
이런 것을 앞으로 많이 할것이다~
빨리 더 써주세여~