前后台页面参数互传

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

相关文章

MySQL中时区参数time_zone解读

《MySQL中时区参数time_zone解读》MySQL时区参数time_zone用于控制系统函数和字段的DEFAULTCURRENT_TIMESTAMP属性,修改时区可能会影响timestamp类型... 目录前言1.时区参数影响2.如何设置3.字段类型选择总结前言mysql 时区参数 time_zon

Python如何使用seleniumwire接管Chrome查看控制台中参数

《Python如何使用seleniumwire接管Chrome查看控制台中参数》文章介绍了如何使用Python的seleniumwire库来接管Chrome浏览器,并通过控制台查看接口参数,本文给大家... 1、cmd打开控制台,启动谷歌并制定端口号,找不到文件的加环境变量chrome.exe --rem

Linux中Curl参数详解实践应用

《Linux中Curl参数详解实践应用》在现代网络开发和运维工作中,curl命令是一个不可或缺的工具,它是一个利用URL语法在命令行下工作的文件传输工具,支持多种协议,如HTTP、HTTPS、FTP等... 目录引言一、基础请求参数1. -X 或 --request2. -d 或 --data3. -H 或

使用JavaScript将PDF页面中的标注扁平化的操作指南

《使用JavaScript将PDF页面中的标注扁平化的操作指南》扁平化(flatten)操作可以将标注作为矢量图形包含在PDF页面的内容中,使其不可编辑,DynamsoftDocumentViewer... 目录使用Dynamsoft Document Viewer打开一个PDF文件并启用标注添加功能扁平化

SpringBoot如何访问jsp页面

《SpringBoot如何访问jsp页面》本文介绍了如何在SpringBoot项目中进行Web开发,包括创建项目、配置文件、添加依赖、控制层修改、测试效果以及在IDEA中进行配置的详细步骤... 目录SpringBoot如何访问JSP页python面简介实现步骤1. 首先创建的项目一定要是web项目2. 在

详解Spring Boot接收参数的19种方式

《详解SpringBoot接收参数的19种方式》SpringBoot提供了多种注解来接收不同类型的参数,本文给大家介绍SpringBoot接收参数的19种方式,感兴趣的朋友跟随小编一起看看吧... 目录SpringBoot接受参数相关@PathVariable注解@RequestHeader注解@Reque

Java向kettle8.0传递参数的方式总结

《Java向kettle8.0传递参数的方式总结》介绍了如何在Kettle中传递参数到转换和作业中,包括设置全局properties、使用TransMeta和JobMeta的parameterValu... 目录1.传递参数到转换中2.传递参数到作业中总结1.传递参数到转换中1.1. 通过设置Trans的

java如何调用kettle设置变量和参数

《java如何调用kettle设置变量和参数》文章简要介绍了如何在Java中调用Kettle,并重点讨论了变量和参数的区别,以及在Java代码中如何正确设置和使用这些变量,避免覆盖Kettle中已设置... 目录Java调用kettle设置变量和参数java代码中变量会覆盖kettle里面设置的变量总结ja

spring 参数校验Validation示例详解

《spring参数校验Validation示例详解》Spring提供了Validation工具类来实现对客户端传来的请求参数的有效校验,本文给大家介绍spring参数校验Validation示例详... 目录前言一、Validation常见的校验注解二、Validation的简单应用三、分组校验四、自定义校

SpringBoot中Get请求和POST请求接收参数示例详解

《SpringBoot中Get请求和POST请求接收参数示例详解》文章详细介绍了SpringBoot中Get请求和POST请求的参数接收方式,包括方法形参接收参数、实体类接收参数、HttpServle... 目录1、Get请求1.1 方法形参接收参数 这种方式一般适用参数比较少的情况,并且前后端参数名称必须