본문 바로가기

공부기록

2021-07-21 공부기록

JSP 게시판

 

# 페이지를 바꿔도, 검색타입과 검색어는 유지

페이지를 넘기면 검색했던 타입과 검색어가 초기화되는 현상을 바꾼다.

 

현재의 코드

<div class="page-menu">
					<c:set var="baseUri" value="?boardId=${boardId}" />

					<c:set var="pageMenuArmSize" value="7" />
					<c:set var="startPage" value="${page - pageMenuArmSize >= 1 ? page - pageMenuArmSize : 1}" />
					<c:set var="endPage" value="${page + pageMenuArmSize <= totalPage ? page + pageMenuArmSize : totalPage}" />

한 부분만 가져온 상태인데 위 코드를 읽어보면 boardId만 있는 상태인 것을 확인할 수 있다.

내가 페이지를 돌리다보면 검색어와 검색타입을 까먹을 수도 있는 상황이 있을 때를 대비하기 위해 코드를 추가하였다.

 

<div class="page-menu">
					<c:set var="baseUri" value="?boardId=${boardId}" />
					<c:set var="baseUri" value="${baseUri}&searchKeywordTypeCode=${param.searchKeywordTypeCode}" />
					<c:set var="baseUri" value="${baseUri}&searchKeyword=${param.searchKeyword}" />

					<c:set var="pageMenuArmSize" value="7" />
					<c:set var="startPage" value="${page - pageMenuArmSize >= 1 ? page - pageMenuArmSize : 1}" />
					<c:set var="endPage" value="${page + pageMenuArmSize <= totalPage ? page + pageMenuArmSize : totalPage}" />

Rq를 이용하여 좀 더 쉽게 코드를 짜였고, 검색타입과 검색어 타입도 유지되도록 하였다.

 

 

# NeedLogin 인터셉터에서, 로그인 후 원래 가려던 곳으로 갈 수 있도록 세팅

 

로그아웃상태에서 글작성을 할려하면 로그인을 하라는 경고 메세지가 날라온다.

그 경고 메세지와 함께 편하게 로그인하라는 로그인 페이지를 뜨게 하도록 세팅하자.

 

 

if ( rq.isNotLogined() ) {
			rq.historyBack("로그인 후 이용해주세요.");
			
			return false;
		}

		return true;
	}
}

 위에 코드는 NeedLogin 인터셉터인데,

History.back() 메서드는 브라우저가 세션 기록의 바로 뒤 페이지로 이동하도록 지시한다.

그렇기 때문에 바꿔줘야 한다.

if ( rq.isNotLogined() ) {
			rq.replace("로그인 후 이용해주세요.", "../member/login?afterLoginUri=" + rq.getEncodedAfterLoginUri());
			return false;
		}

		return true;
	}

}

 

위에는 바뀐 코드인데 history 대신 replace를 이용하여 내가 원하는 로그인창이 뜨도록 세팅해놨다.

 

 

# 메인화면 추가

게시판의 용도로 쓰이고 있지만 정말 블로그 답게 만들고 싶기 때문에 메인화면을 추가할려고 한다.

 

추가적으로 우선 

main.jsp UsrHomeControllor만 우선적으로 만들 것.

UsrHomeControllor 를 쉽게 만들기 위해선 기존에 있던 UsrArticleControllor 를 가져와서 고칠 것만 고친다.

 

UsrHomeControllor

package com.jhs.exam.exam2.http.controller;

import com.jhs.exam.exam2.http.Rq;

public class UsrHomeController extends Controller {
	@Override
	public void performAction(Rq rq) {
		switch (rq.getActionMethodName()) {
		case "main":
			actionShowMain(rq);
			break;
		default:
			rq.println("존재하지 않는 페이지 입니다.");
			break;
		}
	}

	private void actionShowMain(Rq rq) {
		rq.jsp("usr/home/main");
	}
}

 또한 UsrHomeController 도 똑같이 기존에 UsrArticleController와 같이  Container인터셉터에 연결되도록 동일하게 만들어야한다.

이러한 준비를 마쳤다면 main 페이지를 만들어도 된다.

 

Main.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

<c:set var="pageTitle" value="홈" />
<%@ include file="../part/head.jspf"%>

<section class="section section-home-main px-4">
	<div class="container mx-auto">

		<div class="card bordered shadow-lg">
			<div class="card-title">
				<a href="javascript:history.back();" class="cursor-pointer">
					<i class="fas fa-chevron-left"></i>
				</a>
				<span>홈</span>
			</div>

			<div>
				<div>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Beatae repellendus laudantium rem molestiae cum voluptatum natus adipisci illo sapiente incidunt! Velit nihil quibusdam ullam quo rem corporis odit ratione laudantium.</div>
				<div>Vel debitis quis sit mollitia sed assumenda cupiditate. Itaque ab ex voluptatum possimus placeat explicabo veniam nemo iure. Eos dolor sequi praesentium doloremque laboriosam quam vitae quod veniam quidem dolores.</div>
				<div>Architecto facilis ad hic molestias odit laborum consectetur asperiores quas facere dolorem quia repudiandae amet porro mollitia quae recusandae dicta consequatur dolorum animi commodi ut. Quod corporis optio atque iure!</div>
				<div>Error praesentium sint hic eius nobis nisi quasi quaerat eligendi vel odit architecto possimus illo in maxime iste necessitatibus quia. Deserunt veniam eaque culpa vitae soluta officia unde voluptatem voluptate.</div>
				<div>Amet atque iusto ullam modi obcaecati sunt odio culpa delectus minus illum tempore laborum id cum quis voluptatibus vero ea doloribus vel. Minima aspernatur deleniti optio repellat esse quod ab!</div>
				<div>Vel dolores voluptatibus et qui consequuntur veniam sapiente? Laborum explicabo necessitatibus similique modi ullam dolor tempore quos doloremque impedit saepe mollitia a cum? Repellendus quam a suscipit reprehenderit expedita perspiciatis.</div>
				<div>Porro aliquam officia corrupti fuga excepturi doloribus ullam asperiores repellat dolore perspiciatis incidunt accusamus aut ea maxime dolorum laborum tempora cupiditate soluta non blanditiis. Omnis corporis quia velit inventore doloremque.</div>
				<div>Velit odio doloribus ducimus consequatur totam voluptatem minus fuga voluptatibus fugiat eius eum porro expedita nam quaerat necessitatibus eligendi alias quia eaque praesentium unde. Ducimus temporibus id explicabo inventore ipsam?</div>
				<div>Sint rem officia itaque ut commodi voluptas temporibus nulla atque non quibusdam quidem assumenda quam harum ipsum minima voluptatibus ullam velit fugit cumque error! Amet suscipit asperiores et repellendus vel?</div>
				<div>Pariatur alias ut eveniet rem corporis autem asperiores accusamus voluptate minus repudiandae culpa illo voluptatibus nam quis consectetur consequatur sit atque velit quae minima dolores labore odit illum omnis officia?</div>
			</div>
		</div>
	</div>
</section>

<%@ include file="../part/foot.jspf"%>

 

메인화면을 어떻게 짜야할지 몰라서 이정도 만들었으며 어떻게 나오는지 캡처를 해서 보면..

 

이정도면 깔끔하게 만든 거 같다! 조금만 더 이쁘게 꾸미고 홈 화면도 깔끔하게 정리하면 될 거 같다.

 

'공부기록' 카테고리의 다른 글

2021-07-29,공부기록  (0) 2021.07.29
2021-07-23,공부기록(1)  (0) 2021.07.23
2021-07-20 공부기록  (0) 2021.07.20
2021-06-16 까지의 공부 내용들  (0) 2021.06.17
2021-06-08까지의 공부기록  (0) 2021.06.09