两个不同的项目间页面的跳转总结

  最近在项目中碰到一个棘手的问题,我们的项目是用两种语言写的,其两者之间会有一些跳转的交互。我所面临的问题就是通过Java项目调到ruby项目,然后还能由ruby项目跳转到Java项目。第一次做这个有点不知所措。最后用了解决方案(PS:项目中session共享问题已经解决了)。

  第一种解决办法是在前端做控制,window.location.herf进行连接的跳转。但是这个只能操作当前的window,因为我们的项目中是Java页面作为一个iframe嵌套在ruby页面中。所以要变父页面的URL或者说就是整个页面的URL。总结一下:window.location.herf

  javascript中的location.href有很多种用法,主要如下。

1 self.location.href="/url" 当前页面打开URL页面
2 location.href="/url" 当前页面打开URL页面
3 windows.location.href="/url" 当前页面打开URL页面,前面三个用法相同。
4 this.location.href="/url" 当前页面打开URL页面
5 parent.location.href="/url" 在父页面打开新页面
6 top.location.href="/url" 在顶层页面打开新页面

  如果页面中自定义了frame,那么可将parent self top换为自定义frame的名称,效果是在frame窗口打开url地址

  此外,window.location.href=window.location.href;和window.location.Reload()和都是刷新当前页面。区别在于是否有提交数据。当有提交数据时,window.location.Reload()会提示是否提交,window.location.href=window.location.href;则是向指定的url提交数据.

  最重要的是window.location.href 语句可以实现一个框架的页面在执行服务器端代码后刷新另一个框架的页面

  "window.location.href"、"location.href"是本页面跳转
  "parent.location.href"是上一层页面跳转
  "top.location.href"是最外层的页面跳转

  举例说明:

  如果A,B,C,D都是jsp,D是C的iframe,C是B的iframe,B是A的iframe,如果D中js这样写

  "window.location.href"、"location.href":D页面跳转
  "parent.location.href":C页面跳转
  "top.location.href":A页面跳转

  如果D页面中有form的话,

  <form>: form提交后D页面跳转
  <form target="_blank">: form提交后弹出新页面
  <form target="_parent">: form提交后C页面跳转
  <form target="_top"> : form提交后A页面跳转
 
  关于页面刷新,D 页面中这样写:

  "parent.location.reload();": C页面刷新 (当然,也可以使用子窗口的 opener 对象来获得父窗口的对象:window.opener.document.location.reload(); )

  "top.location.reload();": A页面刷新

  第二种是在后端重定向到指定的URL,后端我们是使用springMVC,直接可以写URL来实现跳转,代码如下:

1 @RequestMapping("redirect/{agentPartyId}/{flag}")
2     public String redirect(@PathVariable String agentPartyId, @PathVariable String flag){
3         PropertyPlaceholderConfigurer bean = SpringContext.getBean(PROPERTY_CONFIG_BEAN);
4         Properties pros = bean.getProperties();
5         String rubyServerUrl = pros.getProperty(RUBY_SERVER_URL);
6         String url = rubyServerUrl + "/integration/t0?ext=/apply/"+agentPartyId+flag;
7         logger.info("apply redirect url={}", url);
8         return "redirect:" + url;
9     }

  大致想到的两种解决方案就是这样。

 

时间: 2024-10-22 11:22:33

两个不同的项目间页面的跳转总结的相关文章

小程序项目别的页面初始化拿到的值为两种状态(已解决)

小程序项目别的页面初始化拿到的值为两种状态,其他页面拿不到app.js全局globalData下全局的cookie app.js文件 onLaunch: function () { console.log('app-onLaunch') this.getUserInfo(); }, onShow:function(){ console.log('app-onShow') }, // 获取用户信息,登录 getUserInfo: function (callBack) { let that = t

两种方法实现在HTML页面加载完毕后运行某个js

两种方法实现在HTML页面加载完毕后运行某个js 这篇文章主要介绍了通过两种方法实现在HTML页面加载完毕后运行某个js,需要的朋友可以参考下 js方法: 复制代码 代码如下: <script type="text/javascript"> window.onload=function(){ var userName="xiaoming"; alert(userName); } </script> 以下为jQuery方法,需要引用jQuery

Xamarin.FormsShell基础教程(7)Shell项目关于页面的介绍

Xamarin.FormsShell基础教程(7)Shell项目关于页面的介绍 轻拍标签栏中的About标签,进入关于页面,如图1.8和图1.9所示.它是对应用程序介绍的页面. 该页面源自Views文件夹中的AboutPage.xaml和AboutPage.xaml.cs文件,而数据是通过绑定ViewModels文件中的AboutViewModel.cs类实现的. 轻拍Learn more按钮,会打开内置浏览器,并显示微软官网,如图1.10和图1.11所示. 原文地址:https://www.c

C#项目间复用窗体

在不同项目间可能使用相同的窗体.  复用窗体操作: 1.复制窗体文件, 一般包括三部分 2.粘贴到目标工程文件夹下 3.添加现在有项,选择cs文件即可 注意: 如果目标是dll项目,可先新建一个窗体,然后在添加复制来的窗体,最后删除新建窗体即可.如直接添加会出错. 原文地址:https://www.cnblogs.com/52vsto/p/12246124.html

js实现两个页面之间跳转参数传递

html在设计时,规定跳转地址后加"?"表示从此开始为跟随页面地址跳转的参数. 有时候,我们希望获得相应的跳转前页面里的内容,这时候我们就可以考虑将内容以参数形式放到地址中传过来,这里我建议将参数以变量形式传递. 代码案例如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>direct1.ht

Android笔记-4-实现登陆页面并跳转和简单的注册页面

实现登陆页面并跳转和简单的注册页面 首先我们来看看布局的xml代码 login.xml <span style="font-family:Arial;font-size:18px;"><?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android&qu

MVC的重定向页面的跳转

MVC页面重定向,主要有以下几种形式: 1.Response.Redirect();方法 [csharp] view plaincopy using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; namespace MvcDemo.Controllers { [HandleError] public class HomeController 

页面刷新跳转后,导航栏高亮显示跳转前的点击位置

需求:比如有一个二级或三四级的菜单栏,页面不跳转时实现高亮显示是很容易的,网上有很多这样的素材.但是页面一跳转,新页面可就记不住你在上一个页面点击的位置了,也就不可能高亮显示.并且很多时候,跳转后的页面菜单栏是后台动态生成的,也就是菜单栏栏目不固定,那么就不可能给菜单栏高亮效果写死.不知道这个事利用前后台交互去做会不会容易点,但是现在是要用纯前台实现. 实现原理一:这时候必须找个地方给它把点击的位置存起来,等页面跳转后,从那个地方把标记取出来,再给导航相应的位置做高亮处理就好了. 方法1:利用

对整站的a链接进行监控,对匹配规则进行指定页面的跳转

项目中有个需求,就是将非本站的链接跳转到过渡页(提示即将离开本站的那种页面).这个时候想起了腾讯邮箱,不安全链接会有新的页面提示,如下图: 本以为ASP.NET中有全局的方法获取到点击或者跳转的链接,结果也没找到.Request和Response都取不到的,HttpModule,HttpHandle,Global中也一样,毕竟跳转之后是到别人的网站上去了.不晓得IIS上能否监控的到.最后只能在a标签上加Onclick了.由于a标签的onclick要比href先执行,所以把a标签统一加上oncli