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开发常用类(包装,数字处理集合等)(下)...
本文来自:曹胜欢博客专栏。转载请注明出处:http://blog.csdn.net/csh624366188 写在前面:由于前天项目老师建设局的项目快到验收阶段,所以,前天晚上通宵,昨天睡了大半天,下午我们宿舍聚会&#…

对数组中的数字 1 和 2 进行排序,使得数字 1、2 分别位于前、后部分
问题描述:假设某个数组中只有数字 1 和 2,进行排序,使得数字 1 位于数组前部分,数字 2 位于后部分。 这道算法题其实不是很难,使用各种排序算法应该都能解出,但是若要考虑性能问题,那就得选择一…

@class和#import
class 作用: 可以简单的引用一个类 简单使用: class Dog; 仅仅是告诉编译器,Dog是一个类;并不会包含Dog这个类的所有内容 具体使用: 在.h文件中使用class引用一个类 在.m文件中使用#import包含这个类的.h文件 作用上的…

java登陆界面连接数据库_java 登陆界面怎么写,连接数据库后
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼界面是package 界面类;import javax.jws.soap.SOAPBinding.Use;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing…

C# 汉字编码GB2312转换
功能界面 源码: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms;namespace wordsConvert {public partial class Fo…

python批量爬取文档
最近项目需要将批量链接中的pdf文档爬下来处理,根据以下步骤完成了任务: 将批量下载链接copy到text中,每行1个链接;再读txt文档构造url_list列表,利用readlines返回以行为单位的列表;利用str的rstrip方法&a…

[Android]webview直接加载网页允许JS,进度条,当前应用内跳转
webview,用于在应用里面直接加载网页本代码参考了:官方的webview实例介绍:https://developer.android.com/guide/tutorials/views/hello-webview.html 加上进度条: http://blog.csdn.net/stoneson/article/details/6068089 整个源…

ubuntu 14.04 安装java_Ubuntu 14.04中安装Java
第三:在Ubuntu 和 Linux Mint上安装Java看了各种类型"java";的不同之后,让我们看如何安装他们。1)在Ubuntu和Linux Mint上安装JRE打开终端,使用下面的命令安装JRE:sudo apt-get install default-jre2)在Ubuntu和Linux M…

C# 生成系统唯一号
生成唯一号:思路,根据yymmddhhmmss自增长号唯一服务器号( SystemNo)生成唯一码,总长度19,例如:1509281204550000101. public class UniqueNumber{private static long num 0;//流水号private static object lockObj …

EBS上用过的一些接口表整理信息
AP接口表:AP_INVOICES_INTERFACEAP_INVOICE_LINES_INTERFACE涉及的请求:应付款管理系统开放接口导入涉及案例: 运费导AP、费用导APPO接口表:申请:PO_REQUISITIONS_INTERFACE_ALL涉及请求:导入申请采购&…

linux源码编译安装nginx
1.从nginx的官方网站下载nginx的安装源码包,要下载.gz格式的包才是linux安装包 网址http://nginx.org/download/ wget http://nginx.org/download/nginx-1.5.9.tar.gz 2.解压 tar -zxvf nginx-1.5.9.tar.gz yum -y install pcre-devel gcc gcc-c autoconf automak…

usr share里没有mysql_无法在ubuntu 12.04上安装mysql,找不到消息文件’/usr/share/mysql/errmsg.sys’...
尝试使用apt-get安装mysql但它失败了# apt-get install MysqL-serverReading package lists... DoneBuilding dependency treeReading state information... DoneThe following extra packages will be installed:MysqL-server-5.5Suggested packages:tinycaThe following NEW …
android:更改PagerTabStrip背景颜色,标题字体样式、颜色和图标,以及指示条的颜色...
1.更改PagerTabStrip背景颜色我们直接在布局中设置background属性可以:<android.support.v4.view.ViewPagerandroid:id"id/pager"android:layout_width"fill_parent"android:layout_height"fill_parent" ><android.support.…

敏捷开发日常跟进系列之二:燃尽图(中)
这是敏捷开发日常跟进系列的第二篇(栏目目录)。 迭代及燃尽图的目标 燃尽图的目标是完成迭代的目标,迭代的目标是什么呢? 1. 按产品经理的要求,交付计划会中计划的用户故事 2. 尽量完成1 之后还会看到,这个…

[python][jupyter notebook]之菜鸟安装[pyecharts]中Geo或Map显示问题
作为菜鸟,在学习使用pyecharts模块进入jupyter notebook的时候,又遇到了问题——那就是,可以使用一下代码,导入Geo和Map模块,但是弄了之后看不见地图。 from pyecharts import Geo from pyecharts import Map 所以&…

c语言多线程mysql_多线程读写mysql数据库
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼unsigned int __stdcall scan(PVOID pM){char ip[20];strcpy(ip, (char*)pM);MYSQL mysql;MYSQL_RES* result;//初始化mysql句柄mysql_init(&mysql);//连接mysql数据库if(!mysql_real_connect(&mysql,"localhost"…

[C#,Java,PHP] - IMAP文件夹名称编码和解码方法
[C#] 来源:http://www.oschina.net/code/snippet_110991_2237 // 编码private string IMAPEncode(string folder){string rtn "", base64;int index 0; Regex regAsis new Regex("\G(?:[\x20-\x25\x27-\x7e])"); Regex reg26 new Rege…

fzu 2150 Fire Game 【身手BFS】
称号:fzu 2150 Fire Game :给出一个m*n的图,‘#’表示草坪,‘ . ’表示空地,然后能够选择在随意的两个草坪格子点火。火每 1 s会向周围四个格子扩散,问选择那两个点使得燃烧全部的草坪花费时间最小…

K-Means聚类算法原理
来自:https://www.cnblogs.com/pinard/p/6164214.html K-Means算法是无监督聚类算法,它有很多变体。包括初始化优化K-Means,距离计算优化elkan K-Means算法和大样本优化Mini Batch K-Means算法。 1. K-Means原理 K-Means算法思想:…

safari java插件故障_safari flash插件故障怎么办 mac safari flash插件故障解决方法
近几日,许多网友都在关注safari flash插件故障怎么办 mac safari flash插件故障解决方法这个话题,那么safari flash插件故障怎么办 mac safari flash插件故障解决方法具体情况是怎么样的呢?safari flash插件故障怎么办 mac safari flash插件故…

Traveller项目介绍
Traveller,翻译为旅行家,是我用来实践最佳web技术的项目,主题是一个给旅行爱好者提供旅行信息的网站。 目标是组合现最流行的web技术,实现符合中国用户使用习惯的网站。 相关网址 Git:https://github.com/mingziday/Tr…

窗口之间传递消息的一个方法
发送窗口的代码 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Wi…

docker制作镜像篇(基于容器)
docker制作镜像可以有两种方式:一、基于容器(使用busybox制作http镜像)1.首先运行一个容器2.在容器当中配置自己的http,添加web目录,增加主页文件等。3.查看原busybox运行容器时的默认启动程序(原运行命令为…

java+js上传图片_java+ jsp+js 实现富文本编辑和上传图片功能
class FileManageActionController extends BaseAction{// windowsprivate String PATH_LINEs "\\";// linuxprivate String PATH_LINE "/";/*** 文件上传* param request {link HttpServletRequest}* param response {link HttpServletResponse}* retur…

Outlook接收qq的邮件
1.先去qq邮箱,设置,账户 开启pop3服务,假如之前开启过,最好关闭之后重新开启 最新版本的必须使用邮箱的独立密码才可以收取邮件 (否则就算你之前开通了,也无法用你的qq账号和密码收取邮件的) 2.高级设置里面࿰…

架构设计复杂度的6个来源
谈到架构设计,相信每个技术人员都耳熟能详。我总结了三个架构设计相关的特性: 架构设计的思维和程序设计的思维差异很大。架构设计没有体系化的培训和训练机制。程序员对架构设计的理解存在很多误区。 所以,虽然每个程序员心中都有一个成为架…

java swt 画按钮_向表中添加按钮(java swt)
我正在尝试复制类似于此的UI:我一直在关注如何创建表格每列中的按钮的作者说明(没有成功).我的项目与他的区别在于我正在尝试使用Tree而不是Table,而我正在使用eclipse TreeViewer插件进行上下文.从理论上讲,实现似乎应该是直截了当的,但我似乎无法让它发挥作用.这是…

在Windows7 下 mingw32 开发环境中采用 glut3.7 学习 OpenGL
2015年10月2日更新: 发现 freeglut 很好用兼容于 gut ,而且开源还在更新中。因此我觉得放弃以前的 glut 了,转而用 freeglut 了。 买了本《计算机图形学第4版》想学习下图形学,但是书中的例子还是基于上古时期的 glut ,…

Spring Aop的应用
2019独角兽企业重金招聘Python工程师标准>>> AOP的基本概念 连接点( Jointpoint) : 表示需要在程序中插入横切关注点的扩展点,连接点可能是类初始化、方法执行、 方法调用、字段调用或处理异常等等, Spring…

Apache Tomcat 7.x 概述
前言 Tomcat 一直是Java web程序的首选应用服务器,现在已经更新到7.x版本了。如果你还使用老版本,那么你赶快更新到最新版本吧,他改善了不性能,修复了很多BUG。下面我从官网,简单翻译了一下7.x的特性,给你一…