三种方式:拦截器、viewresolver、redirect前model.asMap().clear()清除modelmap
1.拦截器中处理
public class CommonModelMapInformationInterceptor implements HandlerInterceptor { // This method is unused as this Interceptor is for post handle only public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { } // This method is unused as this Interceptor is for post handle only public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { return true; } public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { boolean isRedirectView = modelAndView.getView() instanceof RedirectView; boolean isViewObject = modelAndView.getView() == null; // if the view name is null then set a default value of true boolean viewNameStartsWithRedirect = (modelAndView.getViewName() == null ? true : modelAndView.getViewName().startsWith(UrlBasedViewResolver.REDIRECT_URL_PREFIX)); if(modelAndView.hasView() && ( ( isViewObject && !isRedirectView) || (!isViewObject && !viewNameStartsWithRedirect))){ addCommonModelData(modelAndView); } } public void addCommonModelData(ModelAndView modelAndView){ modelAndView.addObject(“stuff”, “importantStuff”); modelAndView.addObject(“moreStuff”, “moreImportantStuff”); } }
2.viewresolver中处理
我自己用的是继承自InternalResourceViewResolver,
分别介绍两种方式:
1)可以在需要忽略model的时候改用 redirectWithoutModel来做跳转
public class RedirectViewResolver implements ViewResolver, Ordered { // Have a highest priority by default private int order = Integer.MIN_VALUE; // Uses this prefix to avoid interference with the default behaviour public static final String REDIRECT_URL_PREFIX = "redirectWithoutModel:"; public View resolveViewName(String viewName, Locale arg1) throws Exception { if (viewName.startsWith(REDIRECT_URL_PREFIX)) { String redirectUrl = viewName.substring(REDIRECT_URL_PREFIX.length()); return new RedirectView(redirectUrl, true, true, false); } //return null;//此处原文返回空 return super.resolveViewName(viewName, arg1); } public int getOrder() { return order; } public void setOrder(int order) { this.order = order; } }
2)当整个应用都不希望带model跳转,可以更简单的实现
public class RedirectsNotExposingModelUrlBasedViewResolver extends UrlBasedViewResolver { @Override protected View createView(String viewName, Locale locale) throws Exception { View view = super.createView(viewName, locale); if (view instanceof RedirectView) { ((RedirectView) view).setExposeModelAttributes(false); } return view; } }
-----------------------------------------------------------------------------------------------
3.1以后还可以设置ignoreDefaultModelOnRedirect属性为true
相关推荐
9. 变量 `fqdn_redirect_url`,`url_redirect_data` 和 `url_redirect_default`:它们分别存储完全限定的域名(FQDN)形式的重定向URL、用户自定义的重定向URL数据和默认的重定向URL数据。 在Linux内核中实现URL...
正则表达式能够帮助我们提取或忽略URL路径中的某些部分,实现更灵活的重定向处理。此外,我们还要注意Nginx的版本兼容性问题,因为proxy_redirect指令在不同版本的Nginx中可能有不同的表现。 在实际部署时,proxy_...
2. **Redirect**:将请求的URL重定向到另一个URL,浏览器地址也会更新。 ### 四、条件匹配与条件组 URLRewrite规则可以包含多个条件,用于确定何时应用规则。条件可以是请求的URL、查询字符串、HTTP头等。逻辑组...
<action type="Redirect" url="/newpage.aspx" redirectType="Permanent" /> ``` **5. 使用正则表达式** URL重写规则可以利用正则表达式进行复杂的匹配。例如,以下规则将所有以`/news/`开头,后面跟随一...
$`,而Rewrite URL则设置为`/Redirect.aspx$1`。这里的`(.+)`捕获了查询字符串,并用`$1`在Rewrite URL中引用它,确保原始参数得以保留。 例如,如果用户访问`...
<action type="Redirect" url="/newpage" redirectType="Permanent" /> ``` 这样,当用户访问`/oldpage.aspx`时,IIS会自动将其重定向至`/newpage`。 2. **ASP.NET MVC路由**: 在ASP.NET MVC框架中,...
<action type="Redirect" url="{R:1}" redirectType="Permanent" /> ``` 这个规则会捕获以".aspx"结尾的URL,然后去掉后缀并重定向至新URL。 其次,对于ASP.NET MVC和Web API,我们可以使用Route类来定义...
UrlRewrite.dll是微软IIS(Internet Information Services)服务器中的一个关键组件,主要负责URL重写功能。在网站开发和管理中,它扮演着至关重要的角色,尤其在优化搜索引擎优化(SEO)、实现友好的URL结构以及...
<action type="Redirect" url="/newpage" redirectType="Permanent" /> ``` 3. **定义重写规则**:在上述配置中,`<match>`元素定义了匹配旧URL的模式,而`<action>`元素定义了如何重定向到新URL。 4. **...
在IT行业中,`urlEncode` 和 `urlDecode` 是两个非常关键的概念,它们主要用于处理URL(统一资源定位符)中的特殊字符。理解这两个概念对于网页开发、数据传输以及网络编程至关重要。 `urlEncode` 是一个过程,它将...
“绿盟-首页.url”文件看起来像是一个快捷方式,它可能指向了一个网络安全服务提供商的首页,与New Tab Redirect插件本身无关,但可能被一同提供,用于提醒用户关注网络安全,确保在使用插件的同时,保护自己的在线...
一个简单的命令行实用程序,可让您进行重定向以查看http URL的最终位置。 对于缩短的网址很有用。 最多跟踪20个重定向默认值。 还向请求添加了User-Agent标头,如果没有浏览器信息,某些网址将不会重定向,例如:...
- **URL参数**:可以将数据附加到重定向URL后面,以查询字符串的形式传递,如`redirect:/target?param1=value1¶m2=value2`。 - **模型属性**:使用`RedirectAttributes`接口,它允许我们在重定向时添加模型...
<action type="Redirect" url="/new-page/{R:1}" redirectType="Permanent" /> ``` 在这个例子中,`{R:1}`是一个后向引用,表示第一个括号内匹配的内容。 四、UrlRewrite的实际应用 1. **URL路由**:在ASP.NET ...
标题 "urlrewrite重写URL伪静态请求路径" 涉及到的是Web开发中的一个重要概念——URL重写,这是为了优化网站的SEO(搜索引擎优化)和用户体验而进行的一种技术手段。URL重写允许我们将复杂的动态URL转换为简洁、易于...
3. **Action**:动作部分,如`<redirect>`或`<forward>`标签,定义了URL重写后的目标地址。 例如,以下规则将所有以`/old`开头的URL重定向到对应的`/new`路径: ```xml ^/old/(.*)$ <to type="redirect">/new/$...
微擎公众号模块提示redirect_uri协议与后台配置不一致错误码10039 的解决办法
<action type="Redirect" url="/articles/{R:1}" appendQueryString="false" /> ``` 2. **高级规则**:可以利用正则表达式实现更复杂的重写,如处理参数、URL编码等。 **四、IIS URL重写模块与其他IIS插件的...
Aspnet Mvc教程 12.URLRouting简介 02:58 Aspnet Mvc教程 14. Filter 05:11 Aspnet Mvc教程 13.Helper初体验 04:53 Aspnet Mvc教程 15.QueryString传值 06:18 Aspnet Mvc教程 16.表单生成及Post传值 07:20 ...
- `<redirect>`重定向:将请求转发到其他URL。 - `<forward>`转发:内部转发,不改变浏览器地址栏。 - `<append-query>`追加查询参数:在重写URL时,保留或追加原始的查询参数。 6. **注意事项**: - 配置文件...