From efe92d1cf05f4444ff8ca365715febf1f16f8289 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=90=95=E9=87=91=E6=B3=BD?= <1098696801@qq.com> Date: Wed, 3 Nov 2021 16:24:52 +0800 Subject: [PATCH] =?UTF-8?q?=E6=89=A9=E5=B1=95=E8=BD=AC=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../extension/ResponseFunctionExtension.java | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 magic-boot/src/main/java/org/ssssssss/magicboot/extension/ResponseFunctionExtension.java diff --git a/magic-boot/src/main/java/org/ssssssss/magicboot/extension/ResponseFunctionExtension.java b/magic-boot/src/main/java/org/ssssssss/magicboot/extension/ResponseFunctionExtension.java new file mode 100644 index 0000000..31ceab9 --- /dev/null +++ b/magic-boot/src/main/java/org/ssssssss/magicboot/extension/ResponseFunctionExtension.java @@ -0,0 +1,39 @@ +package org.ssssssss.magicboot.extension; + +import org.springframework.stereotype.Component; +import org.springframework.web.context.request.RequestAttributes; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; +import org.ssssssss.magicapi.context.RequestContext; +import org.ssssssss.magicapi.modules.ResponseModule; +import org.ssssssss.script.annotation.Comment; +import org.ssssssss.script.functions.ExtensionMethod; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; + +@Component +public class ResponseFunctionExtension implements ExtensionMethod { + + @Override + public Class support() { + return ResponseModule.class; + } + + private HttpServletResponse getResponse() { + RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes(); + if (requestAttributes instanceof ServletRequestAttributes) { + return ((ServletRequestAttributes) requestAttributes).getResponse(); + } + return null; + } + + @Comment("转发") + public ResponseModule.NullValue dispatcher(ResponseModule responseModule, String url) throws ServletException, IOException { + HttpServletRequest request = RequestContext.getHttpServletRequest(); + request.getRequestDispatcher(url).forward(request, getResponse()); + return responseModule.end(); + } + +} \ No newline at end of file