java重定向带参数_急 求助重新封装重定向带参数问题
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
这是我写的代码 不知道行不行 求助
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-----------");
// 标识请求是否已经在该方法内完成处理
mavContainer.setRequestHandled(true);
// 得到request与response对象
HttpServletRequest request = webRequest.getNativeRequest(HttpServletRequest.class);
HttpServletResponse response = webRequest.getNativeResponse(HttpServletResponse.class);
// 得到返回的结果
Result result = (Result) returnValue; // 获取方法上的注解
ResultMapping resultTypeAnnotation = returnType.getMethodAnnotation(ResultMapping.class);
// 返回的默认url
String redirectUrl = resultTypeAnnotation.defaultUrl();
if(result.getUrl() != null && !"".equals(result.getUrl())){
redirectUrl = result.getUrl();
}
try {
HashMap hashMap = new HashMap();
//如果发现异常
if (result.getCode() == -1) {
hashMap.put("code", result.getCode());
hashMap.put("msg", "发生错误:" + result.getMsg());
hashMap.put("expMsg", result.getExpMsg());
//出错做转发
redirectUrl = ERROR_WEB_PAGE;
request.setAttribute("model", hashMap);
request.getRequestDispatcher(redirectUrl).forward(request, response);
return;
}
//取得参数
String parameterName = returnType.getParameterName();
//设置进去
mavContainer.addAttribute(parameterName);
//重定向
response.sendRedirect(redirectUrl);
} catch (Exception ex) {
logger.error("RedirectResultHandler发生错误:{}",ex.getMessage());
HashMap hashMap = new HashMap();
hashMap.put("code", "-1");
hashMap.put("msg", "RedirectResultHandler转换器发生错误:" + ex.getMessage());
hashMap.put("expMsg", ex.getMessage());
request.setAttribute("model", hashMap);
//出错做转发
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());
}
}
java重定向带参数_急 求助重新封装重定向带参数问题相关推荐
- java redirect 跨域_如何解决跨域重定向携带参数的问题?不使用将参数拼接在重定向url末尾的方式...
如何解决跨域重定向携带参数的问题?不使用将参数拼接在重定向url末尾的方式 需求,项目A在服务器A上,需要重定向到服务器B上项目B,并且需要携带参数,参数对用户不可见,所以不可以将参数拼接在重定向ur ...
- 新代系统反向间隙参数_如何调试新代系统SYNTEC参数
新代系统SYNTEC参数调试步骤: 1. 参数修改 :第一页面按显示屏下最右或左边按键,出现"参数设定"按键,找到要改的参数,需要输入密码时,输入参数密码"520&quo ...
- 新代系统反向间隙参数_新代系统SYNTEC:调试参数 nbsp;- 加工中心
2017年5月19日 新代系统SYNTEC:调试参数 - 加工中心 三 . 新代系统SYNTEC: 1. 参数修改 :第一页面按显示屏下最右或左边按键,出现"参数设定"按键,找到 ...
- python 函数调用 不允许关键字参数_你所不知道的Python|函数参数的演进之路
原标题:你所不知道的Python|函数参数的演进之路 函数参数处理机制是Python中一个非常重要的知识点,随着Python的演进,参数处理机制的灵活性和丰富性也在不断增加,使得我们不仅可以写出简化的 ...
- ssrs 级联参数_在SSRS中使用多值参数
ssrs 级联参数 This article covers the usage and detailed features of the multi-value parameter in SSRS. ...
- 南方h5手簿求转换参数_如何使用RTK手簿求坐标转换参数(四参数/七参数)
参数计算是用于两个坐标系统之间的转换关系,GPS 接收机输出的数据是CGCS2000经纬度坐标,但是有些时候根据甲方的要求,需要转化到施工测量坐标,这个时候就需要软件进行坐标转换参数的计算和设置,而转 ...
- c语言全局变量作为参数_在C / C ++中使用变量参数列表
c语言全局变量作为参数 C/C++ provides a means to pass a variable number of arguments to a function. This artic ...
- 8145v5 参数_【DCM-07】Random Parameter(随机参数)Logit模型及其Nlogit实现
本文是本专栏系列的第7篇原创文章,将详细介绍随机参数Logit模型,并利用Nlogit软件进行实操演示.本文公式较多,建议电脑端享用. [需要数据和完整代码的可以关注我的微信公众号,自动获取,可以搜索 ...
- java中jsp怎么传递参数_急!Java问题,Java如何获得jsp传递的参数??
我的jsp页面:while(rs.next()){%> "target="_blank"> 我的jsp页面: while (rs.next()) { %> ...
最新文章
- linux驱动:TI+DM8127+GPIO(四)之设备
- Transformer也能生成图像
- HDU - 3613 Best Reward(字符串哈希)
- $$watcher when is it filled
- Linux网络编程服务器模型选择之IO复用循环并发服务器
- Google上面关于cas的文章
- [转载]用c写PHP的扩展接口(php5,c++)
- 一周学好python_耗时一周整理的Python资料,包含各阶段所需网站、项目,收藏了?慢慢来...
- String 源码解析
- go语言如何调用java接口,[译] 如何在 Go 中使用接口
- 解决java poi海量数据导出内存溢出问题
- 虚拟化技术发展编年史
- C++中vector的访问和赋值
- 南京装修公司排名十大口碑排行榜(教你如何选择)
- 高质量web前端后台模板
- java 进制转换类_Java基本数据类型以及进制转换
- 从阿里、华为、海尔的崛起看:财务生产力可以有多强
- [leetcode]1438. 绝对差不超过限制的最长连续子数组
- 3D MAX 安装中的一些问题 一直初始化、闪退
- ubuntu合并终端_如何在Ubuntu中安装多个终端以及更改默认终端