Add statusCode to ResponseValues
This commit is contained in:
parent
0d93be55d4
commit
0406db8b59
1 changed files with 68 additions and 3 deletions
|
@ -185,6 +185,12 @@ public class FreemarkerHttpServlet extends VitroHttpServlet {
|
||||||
|
|
||||||
protected void doResponse(VitroRequest vreq, HttpServletResponse response, ResponseValues values) {
|
protected void doResponse(VitroRequest vreq, HttpServletResponse response, ResponseValues values) {
|
||||||
try {
|
try {
|
||||||
|
|
||||||
|
int statusCode = values.getStatusCode();
|
||||||
|
if (statusCode > 0) {
|
||||||
|
response.setStatus(statusCode);
|
||||||
|
}
|
||||||
|
|
||||||
// switch (values.getType()) {
|
// switch (values.getType()) {
|
||||||
// case TEMPLATE:
|
// case TEMPLATE:
|
||||||
// doTemplate(vreq, response, values);
|
// doTemplate(vreq, response, values);
|
||||||
|
@ -535,6 +541,10 @@ public class FreemarkerHttpServlet extends VitroHttpServlet {
|
||||||
|
|
||||||
String getTemplateName();
|
String getTemplateName();
|
||||||
|
|
||||||
|
int getStatusCode();
|
||||||
|
|
||||||
|
void setStatusCode(int statusCode);
|
||||||
|
|
||||||
Map<String, Object> getMap();
|
Map<String, Object> getMap();
|
||||||
|
|
||||||
String getRedirectUrl();
|
String getRedirectUrl();
|
||||||
|
@ -544,7 +554,25 @@ public class FreemarkerHttpServlet extends VitroHttpServlet {
|
||||||
Throwable getException();
|
Throwable getException();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected static class TemplateResponseValues implements ResponseValues {
|
protected static abstract class BaseResponseValues implements ResponseValues {
|
||||||
|
private int statusCode = 0;
|
||||||
|
|
||||||
|
BaseResponseValues() { }
|
||||||
|
|
||||||
|
BaseResponseValues(int statusCode) {
|
||||||
|
this.statusCode = statusCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getStatusCode() {
|
||||||
|
return statusCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setStatusCode(int statusCode) {
|
||||||
|
this.statusCode = statusCode;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected static class TemplateResponseValues extends BaseResponseValues {
|
||||||
private final String templateName;
|
private final String templateName;
|
||||||
private final Map<String, Object> map;
|
private final Map<String, Object> map;
|
||||||
|
|
||||||
|
@ -553,11 +581,23 @@ public class FreemarkerHttpServlet extends VitroHttpServlet {
|
||||||
this.map = new HashMap<String, Object>();
|
this.map = new HashMap<String, Object>();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public TemplateResponseValues(String templateName, int statusCode) {
|
||||||
|
super(statusCode);
|
||||||
|
this.templateName = templateName;
|
||||||
|
this.map = new HashMap<String, Object>();
|
||||||
|
}
|
||||||
|
|
||||||
public TemplateResponseValues(String templateName, Map<String, Object> map) {
|
public TemplateResponseValues(String templateName, Map<String, Object> map) {
|
||||||
this.templateName = templateName;
|
this.templateName = templateName;
|
||||||
this.map = map;
|
this.map = map;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public TemplateResponseValues(String templateName, Map<String, Object> map, int statusCode) {
|
||||||
|
super(statusCode);
|
||||||
|
this.templateName = templateName;
|
||||||
|
this.map = map;
|
||||||
|
}
|
||||||
|
|
||||||
public TemplateResponseValues put(String key, Object value) {
|
public TemplateResponseValues put(String key, Object value) {
|
||||||
this.map.put(key, value);
|
this.map.put(key, value);
|
||||||
return this;
|
return this;
|
||||||
|
@ -598,13 +638,18 @@ public class FreemarkerHttpServlet extends VitroHttpServlet {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected static class RedirectResponseValues implements ResponseValues {
|
protected static class RedirectResponseValues extends BaseResponseValues {
|
||||||
private final String redirectUrl;
|
private final String redirectUrl;
|
||||||
|
|
||||||
public RedirectResponseValues(String redirectUrl) {
|
public RedirectResponseValues(String redirectUrl) {
|
||||||
this.redirectUrl = redirectUrl;
|
this.redirectUrl = redirectUrl;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public RedirectResponseValues(String redirectUrl, int statusCode) {
|
||||||
|
super(statusCode);
|
||||||
|
this.redirectUrl = redirectUrl;
|
||||||
|
}
|
||||||
|
|
||||||
// @Override
|
// @Override
|
||||||
// public ResponseType getType() {
|
// public ResponseType getType() {
|
||||||
// return ResponseType.REDIRECT;
|
// return ResponseType.REDIRECT;
|
||||||
|
@ -641,13 +686,18 @@ public class FreemarkerHttpServlet extends VitroHttpServlet {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected static class ForwardResponseValues implements ResponseValues {
|
protected static class ForwardResponseValues extends BaseResponseValues {
|
||||||
private final String forwardUrl;
|
private final String forwardUrl;
|
||||||
|
|
||||||
public ForwardResponseValues(String forwardUrl) {
|
public ForwardResponseValues(String forwardUrl) {
|
||||||
this.forwardUrl = forwardUrl;
|
this.forwardUrl = forwardUrl;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ForwardResponseValues(String forwardUrl, int statusCode) {
|
||||||
|
super(statusCode);
|
||||||
|
this.forwardUrl = forwardUrl;
|
||||||
|
}
|
||||||
|
|
||||||
// @Override
|
// @Override
|
||||||
// public ResponseType getType() {
|
// public ResponseType getType() {
|
||||||
// return ResponseType.FORWARD;
|
// return ResponseType.FORWARD;
|
||||||
|
@ -693,16 +743,31 @@ public class FreemarkerHttpServlet extends VitroHttpServlet {
|
||||||
this.cause = cause;
|
this.cause = cause;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ExceptionResponseValues(Throwable cause, int statusCode) {
|
||||||
|
super(DEFAULT_TEMPLATE_NAME, statusCode);
|
||||||
|
this.cause = cause;
|
||||||
|
}
|
||||||
|
|
||||||
public ExceptionResponseValues(String templateName, Throwable cause) {
|
public ExceptionResponseValues(String templateName, Throwable cause) {
|
||||||
super(templateName);
|
super(templateName);
|
||||||
this.cause = cause;
|
this.cause = cause;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ExceptionResponseValues(String templateName, Throwable cause, int statusCode) {
|
||||||
|
super(templateName, statusCode);
|
||||||
|
this.cause = cause;
|
||||||
|
}
|
||||||
|
|
||||||
public ExceptionResponseValues(String templateName, Map<String, Object> map, Throwable cause) {
|
public ExceptionResponseValues(String templateName, Map<String, Object> map, Throwable cause) {
|
||||||
super(templateName, map);
|
super(templateName, map);
|
||||||
this.cause = cause;
|
this.cause = cause;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ExceptionResponseValues(String templateName, Map<String, Object> map, Throwable cause, int statusCode) {
|
||||||
|
super(templateName, map, statusCode);
|
||||||
|
this.cause = cause;
|
||||||
|
}
|
||||||
|
|
||||||
// @Override
|
// @Override
|
||||||
// public ResponseType getType() {
|
// public ResponseType getType() {
|
||||||
// return ResponseType.EXCEPTION;
|
// return ResponseType.EXCEPTION;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue