日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java重定向带参数_急 求助重新封装重定向带参数问题

發(fā)布時(shí)間:2023/11/27 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java重定向带参数_急 求助重新封装重定向带参数问题 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

該樓層疑似違規(guī)已被系統(tǒng)折疊?隱藏此樓查看此樓

這是我寫的代碼 不知道行不行 求助

package base.web.resolver.result;import java.util.HashMap;import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;import org.apache.logging.log4j.LogManager;

import org.apache.logging.log4j.Logger;

import org.springframework.core.MethodParameter;

import org.springframework.web.context.request.NativeWebRequest;

import org.springframework.web.method.support.HandlerMethodReturnValueHandler;

import org.springframework.web.method.support.ModelAndViewContainer;

import org.springframework.web.servlet.mvc.support.RedirectAttributes;import base.web.annotation.ResultMapping;

import base.web.annotation.ResultMapping.Type;

import base.web.model.Result;public class RedirectChainResultHandler extends BaseResultHandler implements HandlerMethodReturnValueHandler { private static final Logger logger = LogManager.getLogger(RedirectChainResultHandler.class);

@Override

public void handleReturnValue(Object returnValue,MethodParameter returnType, ModelAndViewContainer mavContainer,

NativeWebRequest webRequest ) throws Exception {

logger.info("-------------RedirectChainResultHandler resolver result-----------");

// 標(biāo)識請求是否已經(jīng)在該方法內(nèi)完成處理

mavContainer.setRequestHandled(true);

// 得到request與response對象

HttpServletRequest request = webRequest.getNativeRequest(HttpServletRequest.class);

HttpServletResponse response = webRequest.getNativeResponse(HttpServletResponse.class);

// 得到返回的結(jié)果

Result result = (Result) returnValue; // 獲取方法上的注解

ResultMapping resultTypeAnnotation = returnType.getMethodAnnotation(ResultMapping.class);

// 返回的默認(rèn)url

String redirectUrl = resultTypeAnnotation.defaultUrl();

if(result.getUrl() != null && !"".equals(result.getUrl())){

redirectUrl = result.getUrl();

}

try {

HashMap hashMap = new HashMap();

//如果發(fā)現(xiàn)異常

if (result.getCode() == -1) {

hashMap.put("code", result.getCode());

hashMap.put("msg", "發(fā)生錯(cuò)誤:" + result.getMsg());

hashMap.put("expMsg", result.getExpMsg());

//出錯(cuò)做轉(zhuǎn)發(fā)

redirectUrl = ERROR_WEB_PAGE;

request.setAttribute("model", hashMap);

request.getRequestDispatcher(redirectUrl).forward(request, response);

return;

}

//取得參數(shù)

String parameterName = returnType.getParameterName();

//設(shè)置進(jìn)去

mavContainer.addAttribute(parameterName);

//重定向

response.sendRedirect(redirectUrl);

} catch (Exception ex) {

logger.error("RedirectResultHandler發(fā)生錯(cuò)誤:{}",ex.getMessage());

HashMap hashMap = new HashMap();

hashMap.put("code", "-1");

hashMap.put("msg", "RedirectResultHandler轉(zhuǎn)換器發(fā)生錯(cuò)誤:" + ex.getMessage());

hashMap.put("expMsg", ex.getMessage());

request.setAttribute("model", hashMap);

//出錯(cuò)做轉(zhuǎn)發(fā)

redirectUrl = ERROR_WEB_PAGE;

request.setAttribute("model", hashMap);

request.getRequestDispatcher(redirectUrl).forward(request, response);

} finally {

}

} @Override

public boolean supportsReturnType(MethodParameter returnType) {

return returnType.getParameterType() == Result.class

&& returnType.getMethodAnnotation(ResultMapping.class) != null

&& returnType.getMethodAnnotation(ResultMapping.class).value().name().equals(Type.REDIRECT_CHAIN.name());

}

}

總結(jié)

以上是生活随笔為你收集整理的java重定向带参数_急 求助重新封装重定向带参数问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

歡迎分享!

轉(zhuǎn)載請說明來源于"生活随笔",并保留原作者的名字。

本文地址:java重定向带参数_急 求助重新封装重定向带参数问题