Skip to content

Commit cfb31e9

Browse files
committed
refactor: RedirectView 추상 클래스 추가
1 parent c539134 commit cfb31e9

File tree

2 files changed

+38
-13
lines changed

2 files changed

+38
-13
lines changed

mvc/src/main/java/webmvc/org/springframework/web/servlet/view/JspView.java

Lines changed: 6 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,25 @@
11
package webmvc.org.springframework.web.servlet.view;
22

3+
import jakarta.servlet.ServletException;
34
import jakarta.servlet.http.HttpServletRequest;
45
import jakarta.servlet.http.HttpServletResponse;
56
import org.slf4j.Logger;
67
import org.slf4j.LoggerFactory;
7-
import webmvc.org.springframework.web.servlet.View;
88

9+
import java.io.IOException;
910
import java.util.Map;
1011

11-
public class JspView implements View {
12+
public class JspView extends RedirectView {
1213

1314
private static final Logger log = LoggerFactory.getLogger(JspView.class);
1415

15-
public static final String REDIRECT_PREFIX = "redirect:";
16-
17-
private final String viewName;
18-
1916
public JspView(final String viewName) {
20-
this.viewName = viewName;
17+
super(viewName);
2118
}
2219

2320
@Override
24-
public void render(final Map<String, ?> model, final HttpServletRequest request, final HttpServletResponse response) throws Exception {
25-
if (viewName.startsWith(JspView.REDIRECT_PREFIX)) {
26-
response.sendRedirect(viewName.substring(JspView.REDIRECT_PREFIX.length()));
27-
return;
28-
}
29-
21+
protected void renderWithoutRedirect(final Map<String, ?> model, final HttpServletRequest request,
22+
final HttpServletResponse response) throws ServletException, IOException {
3023
model.keySet().forEach(key -> {
3124
log.debug("attribute name : {}, value : {}", key, model.get(key));
3225
request.setAttribute(key, model.get(key));
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package webmvc.org.springframework.web.servlet.view;
2+
3+
import jakarta.servlet.ServletException;
4+
import jakarta.servlet.http.HttpServletRequest;
5+
import jakarta.servlet.http.HttpServletResponse;
6+
import webmvc.org.springframework.web.servlet.View;
7+
8+
import java.io.IOException;
9+
import java.util.Map;
10+
11+
public abstract class RedirectView implements View {
12+
13+
public static final String REDIRECT_PREFIX = "redirect:";
14+
15+
protected final String viewName;
16+
17+
protected RedirectView(final String viewName) {
18+
this.viewName = viewName;
19+
}
20+
21+
@Override
22+
public void render(final Map<String, ?> model, final HttpServletRequest request, final HttpServletResponse response) throws Exception {
23+
if (viewName.startsWith(REDIRECT_PREFIX)) {
24+
response.sendRedirect(viewName.substring(REDIRECT_PREFIX.length()));
25+
return;
26+
}
27+
renderWithoutRedirect(model, request, response);
28+
}
29+
30+
protected abstract void renderWithoutRedirect(final Map<String, ?> model, final HttpServletRequest request,
31+
final HttpServletResponse response) throws ServletException, IOException;
32+
}

0 commit comments

Comments
 (0)