스프링 MVC는 <form:form>, <form:input> 등 HTML 폼과 커맨드 객체를 연동하기 위한 JSP 태그 라이브러리를 제공한다.
1. <form:form>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<form:form modelAttribute="loginCommand"> -> id대신 modelAttribute 지정하면 커맨드 객체 이름 설정할 수 있다.
예를 들어 modelAttibute = "loginCommand"라는 커맨드 객체와 연결해주고 여기서 이메일, 비밀번호 꺼내와서 authInfo라는 커맨드 객체에 다시 값을 넣어준 뒤 세션을 만드는 컨트롤러를 보자.
@PostMapping
public String submit(
LoginCommand loginCommand, Errors errors, HttpSession session,
HttpServletResponse response) {
new LoginCommandValidator().validate(loginCommand, errors);
if (errors.hasErrors()) {
return "login/loginForm";
}
try {
AuthInfo authInfo = authService.authenticate(
loginCommand.getEmail(),
loginCommand.getPassword());
session.setAttribute("authInfo", authInfo);
~~~~~
2. <spring :???> -> Spring Security를 이용할 때는?
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<spring:message code="rememberEmail" /> - resources/message/label.properties에 지정해주는 값
<form action='<spring:url value="/loginAction"/>' method="post">-여기서는 spring security이용하는데 form 태그 이용해서 어느 커맨드 객체와 연결되는 건가??? spring security 구조를 보면 결국에 authentication에 저장되는데 authentication에서 getAuthorities()로 권한 불러오고 이름은 Principal에서 get.name()을 통해 불러오면 될 거 같다.
disabled, readonly <-사용자가 쓰지 못하게 막는 기능
disabled <- form데이터를 Submit하면 해당 부분만 전송되지 않음.
readonly <- form데이터를 Submit하면 전송됨.
c:choose, c:when, c:otherwise
http://www.devkuma.com/books/pages/1184
indexOf
int indexOf( String string, String substring ): string에서 substring의 첫 위치에 해당하는 인덱스를 반환한다. 찾는문자열이 없을 경우 -1을 리턴한다.
${fn:indexOf("abcdefg", "f")} // 5
'Back-end > Spring-핵심& webMVC' 카테고리의 다른 글
MessageSource 메시지 국제화 처리 (0) | 2021.06.05 |
---|---|
QueryString, request.getParameter, request.getParameterValues (0) | 2021.06.03 |
@ModelAttribute의 쓰임과 Model, ModelMap, ModelAndView (0) | 2021.05.11 |
ch5. 컴포넌트 스캔(#스프링5 프로그래밍 입문-최범균 저) (0) | 2021.05.07 |
ch4. 의존자동주입(#스프링5 프로그래밍 입문-최범균 저) (0) | 2021.05.06 |