ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • question_from.html 코드 분석
    JAVA/스프링 2023. 8. 25. 20:39
    <!DOCTYPE html>
    <html xmlns:th="http://www.thymeleaf.org" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
          layout:decorate="~{layout}">
    <head>
      <title>Content Page</title>
    </head>
    <body>
    <div layout:fragment="content" class="container">
      <h5 class="my-3 border-bottom pb-2">질문등록</h5>
      <form th:action="@{/question/create}" th:object="${questionForm}" method="post">
        <div th:replace="~{form_errors :: formErrorsFragment}"></div>
        <div class="alert alert-danger" role="alert" th:if="${#fields.hasAnyErrors()}">
          <div th:each="err : ${#fields.allErrors()}" th:text="${err}" />
        </div>
        <div class="mb-3">
          <label name="subject" class="form-label">제목</label>
          <input type="text" th:field="*{subject}" class="form-control">
        </div>
        <div class="mb-3">
          <label for="content" class="form-label">내용</label>
          <textarea th:field="*{content}" class="form-control" rows="10"></textarea>
        </div>
        <input type="submit" value="저장하기" class="btn btn-primary my-2">
      </form>
    </div>
    </body>
    </html>
    
    
    
    <!-- fields.hasAnyErrors가 true인 경우 QuestionForm 검증이 실패한 경우
        QuestionForm에서 검증에 실패한 오류메세지는 #fields.allErrors()로 구할 수 있음
        alert alert-danger 클래스를 사용해 오류는 붉은색으로 표시
        -> 오류를 표시하기 위해서는 반드시 타임리프의 th:object 속성이 필요함 왜냐하면
        폼의 속성들이 QuestionForm속성들로 구성된다는 걸 타임리프 엔진에게 알려줘야 하기 때문
    
        템플릿을 수정할 경우 QuestionController의 GetMappig으로 매핑한 메서드도 변경
        왜냐하면 question_form.html 템플릿은 "질문 등록하기" 버튼을 통해 GET 방식으로 요청되더라도
        th:object에 의해 QuestionForm 객체가 필요하기 때문.
        -->

    <html>태그의 xmlns 속성은 XML 네임스페이스 명시

    xmlns 속성은 XHTML문서일 경우 반드시 명시되어야 함 

    네임스페이스(namespace)의 기본값이 “xmlns=http://www.w3.org/1999/xhtml

     

    <th>

    html 테이블에서 제목이 되는 header cell 헤더셀을 정의할 때 사용 테이블을 구성하는 셀은 <th>, <td> 두가지가 있으며 <th> 사용한 헤더 정보를 저장하는 헤더셀-> <th>요소 내 텍스트는 기본적으로 굵은 폰트로 중앙 정렬<td> 일반적인 데이터를 저장하는 데이터셀-> <td> 요소 내 텍스트는 기본적으로 일반적 두께의 폰트로 좌측 정렬


    class="container my-3", class="table", class="thead-dark 등은 부트스트랩이 제공하는 클래스들


    <label> 태그

    <input> 태그를 도와주는 역할. <input>태그가 디자인 하기 힘들 때

    <label>태그로 연결해서 쉽게 디자인하거나 클릭 편의성을 높일 수 있음 

    <label> 태그는 for 속성을 사용해서 <input> 태그의 id 속성에 연계해서 사용.

     label for값과 input id값을 일치시키면


    <input type="" value="">

    html value 속성은 input태그에서 보조적인 속성 

    초깃값 설정 <input type="text" value="아이디를 입력하세요.">, <input type="password" value="비밀번호를 입력하세요">

    버튼 텍스트 변경(submit, button, reset, file)

    양식 제출에 사용(서버에서는 제출용으로 사용되므로 중요한 기능 radio, checkbox)


    row 행(가로)

    column 열(세로)

    'JAVA > 스프링' 카테고리의 다른 글

    템플릿엔진 오류  (0) 2023.08.24
    리포지터리 데이터 삭제하기 부분 개수 오류  (2) 2023.08.23
    엔티티 복습  (2) 2023.08.20
    Controller 복습  (0) 2023.08.20
    Get과 Post의 차이  (0) 2023.08.15
Designed by Tistory.