前后台页面参数互传

2024-09-06 10:18
文章标签 参数 页面 互传

本文主要是介绍前后台页面参数互传,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前台提交Action及请求参数------------->struts截获------------->类中处理,将参数放入request或session中(内置对象)-------------------->接受返回值后struts控制跳转页面------------->页面用EL表达式获取request或session中的参数

第一步

前台提交Action及请求参数

<form action="login1.action" method="post">
<input type="text" id="username" name="username">
<button type="submit" >提交</button>

第二步

struts截获,去testAction类中的testx方法处理,若返回aaa将跳转到test.jsp页面

<action name="login1" class="com.jy.web.action.TestAction" method="testx"><result name="aaa">test.jsp</result></action>

第三步

类中处理,将参数放入request或session中(内置对象)

package com.jy.web.action;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.ServletActionContext;
import org.springframework.web.context.request.SessionScope;
import jdk.nashorn.internal.ir.RuntimeNode.Request;
import com.jy.web.action.common.BaseAction;
public class TestAction extends BaseAction {/*** */private static final long serialVersionUID = 2059656961593054570L;public String testx(){HttpServletRequest request = ServletActionContext.getRequest();String result="aaa";String aa=request.getParameter("username");put2Request("aa", aa);/* 前一个是变量名,后一个也是,把后一个附给前一个,这样以后用request.getAttribute("aa")得到指定的值,这里aa是前一个aa,注意前一个一定要加双引号,(吃亏是福)*/put2Session("aa", aa);String bb=(String) getSession().getAttribute(aa);System.out.println("页面传来的"+aa+"Session的"+bb);return result;}/*-----------------------------------------*/}

第四步

接受返回值后struts控制跳转页面

<action name="login1" class="com.jy.web.action.TestAction" method="testx"><result name="aaa">test.jsp</result></action>

第五步

页面用EL表达式获取request或session中的参数

成功
${requestScope.aa}
<div>${sessionScope.aa}</div>

注意:

这里的put2Request及put2Session是封装好的在BaseAction中

package com.jy.web.action.common;import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;import org.apache.struts2.ServletActionContext;import com.opensymphony.xwork2.ActionSupport;/*** Struts2中的Action基类*/
public class BaseAction extends ActionSupport {private static final long serialVersionUID = 1018499094241813786L;// 提供一些工具方法// //常用方法的封装public HttpServletRequest getRequest() {return ServletActionContext.getRequest();}public HttpSession getSession() {return getRequest().getSession();}public HttpSession getSession(boolean flag) {return getRequest().getSession(flag);}public ServletContext getServletContext() {return ServletActionContext.getServletContext();}/*** 往request作用域存放数据* @param key* @param value*/public void put2Request(String key, Object value) {getRequest().setAttribute(key, value);}/*** 往Session作用域存放数据* @param key* @param value*/public void put2Session(String key, Object value) {getSession().setAttribute(key, value);}/*** 往ServletContext作用域存放数据* @param key* @param value*/public void put2Application(String key, Object value) {getServletContext().setAttribute(key, value);}
}

如果不用封装的put2Request,则放入request内置对象中需要用到

	HttpServletRequest request = ServletActionContext.getRequest();//获取当前请求的对象String result="aaa";String aa=request.getParameter("username");request.setAttribute("aa", aa);
如果不用封装的put2Session,则放入session内置对象中需要用到, session的初始化

 HttpSession session=request.getSession();//获取当前的session信息session.setAttribute("aa", aa);

put2Request("aa", aa);/* 前一个是变量名,后一个也是,把后一个附给前一个,这样以后用request.getAttribute("aa")得到指定的值,这里aa是前一个aa,注意前一个一定要加双引号,(吃亏是福)*/

 put2Session("aa", aa);雷同


用<%%>在前台获取后台数据

<div>输出<%String par=request.getParameter("username");
String att=(String)request.getAttribute("aa");
String ses=(String)request.getSession().getAttribute("aa");
out.print("getParameter获取的值"+"\r"+par+"<br>");
out.print("getAttribute获取的值"+att+"<br>");
out.print("getSession().getAttribute获取的值"+ses+"<br>");//注这里换行要用<br>
%>输出完成</div>
<div>${requestScope.aa}</div>
<div>${sessionScope.aa}</div>


request.getParameter()获取的是用来接收来自get方法或post方法的参数

只能接收java.lang.String

String par=request.getParameter("username");

request.getAttribute()用来接收servlet的变量或Action(其实Action就是特殊的Servlet)

只能接收java.lang.Object

但可以强转为String类型

String att=(String)request.getAttribute("aa");

request.getSession().getAttribute() 先获取session容器,再获取session中的Object

用来接收servlet的变量或Action(其实Action就是特殊的Servlet)

只能接收java.lang.Object

但可以强转为String类型

String ses=(String)request.getSession().getAttribute("aa");



这篇关于前后台页面参数互传的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1141742

相关文章

一文带你了解SpringBoot中启动参数的各种用法

《一文带你了解SpringBoot中启动参数的各种用法》在使用SpringBoot开发应用时,我们通常需要根据不同的环境或特定需求调整启动参数,那么,SpringBoot提供了哪些方式来配置这些启动参... 目录一、启动参数的常见传递方式二、通过命令行参数传递启动参数三、使用 application.pro

基于@RequestParam注解之Spring MVC参数绑定的利器

《基于@RequestParam注解之SpringMVC参数绑定的利器》:本文主要介绍基于@RequestParam注解之SpringMVC参数绑定的利器,具有很好的参考价值,希望对大家有所帮助... 目录@RequestParam注解:Spring MVC参数绑定的利器什么是@RequestParam?@

Android WebView无法加载H5页面的常见问题和解决方法

《AndroidWebView无法加载H5页面的常见问题和解决方法》AndroidWebView是一种视图组件,使得Android应用能够显示网页内容,它基于Chromium,具备现代浏览器的许多功... 目录1. WebView 简介2. 常见问题3. 网络权限设置4. 启用 JavaScript5. D

SpringBoot接收JSON类型的参数方式

《SpringBoot接收JSON类型的参数方式》:本文主要介绍SpringBoot接收JSON类型的参数方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、jsON二、代码准备三、Apifox操作总结一、JSON在学习前端技术时,我们有讲到过JSON,而在

JAVA虚拟机中 -D, -X, -XX ,-server参数使用

《JAVA虚拟机中-D,-X,-XX,-server参数使用》本文主要介绍了JAVA虚拟机中-D,-X,-XX,-server参数使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有... 目录一、-D参数二、-X参数三、-XX参数总结:在Java开发过程中,对Java虚拟机(JVM)的启动参数进

Flutter监听当前页面可见与隐藏状态的代码详解

《Flutter监听当前页面可见与隐藏状态的代码详解》文章介绍了如何在Flutter中使用路由观察者来监听应用进入前台或后台状态以及页面的显示和隐藏,并通过代码示例讲解的非常详细,需要的朋友可以参考下... flutter 可以监听 app 进入前台还是后台状态,也可以监听当http://www.cppcn

解读docker运行时-itd参数是什么意思

《解读docker运行时-itd参数是什么意思》在Docker中,-itd参数组合用于在后台运行一个交互式容器,同时保持标准输入和分配伪终端,这种方式适合需要在后台运行容器并保持交互能力的场景... 目录docker运行时-itd参数是什么意思1. -i(或 --interactive)2. -t(或 --

MySQL表锁、页面锁和行锁的作用及其优缺点对比分析

《MySQL表锁、页面锁和行锁的作用及其优缺点对比分析》MySQL中的表锁、页面锁和行锁各有特点,适用于不同的场景,表锁锁定整个表,适用于批量操作和MyISAM存储引擎,页面锁锁定数据页,适用于旧版本... 目录1. 表锁(Table Lock)2. 页面锁(Page Lock)3. 行锁(Row Lock

禁止HTML页面滚动的操作方法

《禁止HTML页面滚动的操作方法》:本文主要介绍了三种禁止HTML页面滚动的方法:通过CSS的overflow属性、使用JavaScript的滚动事件监听器以及使用CSS的position:fixed属性,每种方法都有其适用场景和优缺点,详细内容请阅读本文,希望能对你有所帮助... 在前端开发中,禁止htm

Java通过反射获取方法参数名的方式小结

《Java通过反射获取方法参数名的方式小结》这篇文章主要为大家详细介绍了Java如何通过反射获取方法参数名的方式,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1、前言2、解决方式方式2.1: 添加编译参数配置 -parameters方式2.2: 使用Spring的内部工具类 -