页面跳转过程中的数据传递问题【不断更新】

来源:互联网 发布:教小孩学编程 编辑:程序博客网 时间:2024/04/30 08:21

页面跳转有几种不同的类型,有在单纯jsp页面实现的跳转,这个我自己也有总结,详见博文《点击按钮实现网页重定向的方式以及其他一些延伸》(其实这里面的实现方式是可以灵活选择的,并不是文本框就只能用文章里写的那种方式,也可以用按钮的实现方式);也有是在通过控制层分发请求实现重定向跳转页面的(这个应该说是持久层与页面之间的数据传递更确切一些)。

单纯jsp页面的跳转--->

获取页面传过来的参数

源页面代码如下:

function updatePassword(){
var name='${requestScope.username}';
  var win; 
  win=window.location.replace("/test/load.jsp?username="+name+"&category=23","Index", 
"height=500,width=800,left=400,top=200,location=yes,toolbar=yes,resizable=yes,scrollbars=yes") ; 
}

<input type="button" value="修改密码" onclick="updatePassword()" />


load.jsp页面的代码:

<%String username=request.getParameter("username"); %>

用户名:<input name="用户名" type="text" value="<%=username %>"/>


通过控制层分发请求,重定向跳转页面(涉及数据库操作)--->

通常是先在Action控制层,将数据绑定在request对象上,然后在jsp再通过request获取数据对象

Action层代码:

int id = Integer.parseInt(request.getParameter("id"));
EmployeeDAO empdao = new EmployeeDAO();
Employee e = empdao.loadEmp(id);
request.setAttribute("employee", e);
RequestDispatcher rd = request.getRequestDispatcher("load.jsp");
rd.forward(request, response);

jsp页面代码:                                                                                                                                                                           <%
Employee e = (Employee) request.getAttribute("employee");
%>
ID号:&nbsp;<%=e.getId()%>
<input type="hidden" name="id" value="<%=e.getId() %>"/><br />
姓名:<input name="name" value="<%=e.getName() %>"/><br />
薪水:<input name="salary" value="<%=e.getSalary() %>"/><br />
年龄:<input name="age" value="<%=e.getAge() %>"/><br />   


PS:另外说说window.location和window.open的区别

window.location = "http://www.baidu.com" 跳转后有后退功能

window.location.replace("http://www.baidu.com") 跳转后没有后退功能

window.open("http://www.baidu.com") 要新的窗口打开链接


<SCRIPT LANGUAGE="javascript"> js脚本开始;   window.open 弹出新窗口的命令;   文件路径/文件名 弹出窗口的文件名;   newwindow 弹出窗口的名字(不是文件名),非必须,可用空代替;   width=400 窗口宽度;   height=300 窗口高度;   top=0 窗口距离屏幕上方的象素值;   left=0 窗口距离屏幕左侧的象素值;   toolbar=no 是否显示工具栏,yes为显示;   menubarscrollbars 表示菜单栏和滚动栏。   resizable=no 是否允许改变窗口大小,yes为允许;   location=no 是否显示地址栏,yes为允许;   status=no 是否显示状态栏内的信息(通常是文件已经打开),yes为允许; </SCRIPT> js脚本结束 

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             


0 0
原创粉丝点击