首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Struts会话表单bean不保留状态

Struts是一个基于Java的开源Web应用框架,用于简化和加速Java Web应用程序的开发过程。它采用了MVC(Model-View-Controller)架构模式,将应用程序的不同部分分离开来,以提高代码的可维护性和可重用性。

会话表单bean是Struts框架中的一个重要概念,用于在不同的页面之间传递数据。它是一个Java对象,通常用于存储用户在表单中输入的数据,并在不同的页面之间保持状态。

然而,Struts的会话表单bean默认情况下不会保留状态。这意味着在用户提交表单后,会话表单bean的数据将丢失,无法在后续的页面中访问。这是因为Struts框架默认使用的是请求作用域(request scope),每个请求都会创建一个新的会话表单bean对象。

要解决这个问题,可以使用以下方法之一:

  1. 使用会话作用域(session scope):将会话表单bean的作用域设置为会话级别,这样在整个会话期间,会话表单bean的数据将保持不变。可以通过在struts-config.xml文件中配置相应的<action>元素来实现。
  2. 使用模型驱动(Model-driven):Struts框架支持使用模型驱动的方式来处理表单数据。通过实现ModelDriven接口,并在Action中重写getModel()方法,可以将表单数据绑定到指定的Java对象中,并在不同的页面之间保持状态。
  3. 使用隐藏字段(Hidden fields):可以在表单中添加隐藏字段,将会话表单bean的数据以隐藏字段的形式传递到下一个页面。在下一个页面中,可以通过获取隐藏字段的值来恢复会话表单bean的数据。

总结起来,Struts的会话表单bean默认不保留状态,但可以通过使用会话作用域、模型驱动或隐藏字段等方法来实现状态的保留。这样可以更好地管理和传递表单数据,提高应用程序的用户体验。

腾讯云相关产品和产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【EJB学习笔记】——有状态会话Bean和无状态会话Bean

会话Bean和无状态的(Stateless)会话Bean。   ...对象的状态是由其实例变量(即成员变量)的值组成的   有状态会话Bean:每次访问都会为用户分配一个独立的bean,在用户的生存周期内,bean始终为当前用户保存信息(用户的状态),用户访问结束时,bean...有状态会话Bean定义的方式是在类头使用注解@Stateful。   无状态会话Beanbean的成员变量保存的信息是所有客户端共享的,不是专门为单独的客户端而保留的。...总结   综上所述,有状态会话Bean可以保存用户状态,但每个用户访问都会实例化一次,会大大降低系统;无状态会话Bean可以被无限复用,性能比较高,但却不能保证保存每个用户的状态。各有利弊。...---- 【 转载请注明出处——胡玉洋《EJB——有状态会话Bean和无状态会话Bean》】

1K10

SSH 学习杂记

Struts 将用户表单使用 FormBean 打包,根据 struts-config.xml 里面 mapping 的配置送入 ActionServlet,ActionServlet 决定自己处理或者分发给更单一任务的...Action 是无状态的,不许用它来保存数据资源。Struts 管理着 Action 子类的创建,并且它们是被 pool 化了的,以便通过重用来提高服务的效率,因此不要使用实例变量。...validate() 表单验证相关: 先在 struts-config.xmld 的 action-mappings 里面设置 validate=”true” 和 input=”/error.jsp”...Jsp 的表单Struts 负责打包,根据 struts-config.xml 中的信息打包成 FormBean,传给接口,然后由 Spring 根据 applicationContext.xml...HibernateSessionFactory 是会话工厂,负责会话的产生、关闭等。

61010

Java面试宝典4.0版

HTTP 协议是无状态的协议。一旦数据交换 完毕,客户端与服务器端的连接就会关闭,再次交换数据需要建立新的连接。这就意味着服 务器无法从连接上跟踪会话。...它可以弥补 HTTP 协议无状态的不足。在 Session 出现之前, 基本上所有的网站都采用 Cookie 来跟踪会话。 6....网络在整个交互过程中始终保持状态,就必须在每个客户端可能 请求的路径后面都包含这个 session id 。 C .另一种技术叫做表单隐藏字段。...用户提交表单时,一个 配置好的 ActionForm 对象被创建,并被填入表单相应的数据, ActionServler 根据 Struts- config.xml 文件配置好的设置决定是否需要表单验证,...等 ) 中非 线程安全状态采用 ThreadLocal 进行处理,让它们也成为线程安全的状态,因为有状态Bean 就可以在多线程中共享了。

1.1K40

Spring,hibernate,struts的面试笔试题及答案

Struts工作机制?为什么要使用Struts?...()方法返回null或返回一个包含ActionMessage的ActuibErrors对象, 就表示表单验证成功; -(5)ActionServlet根据ActionMapping所包含的映射信息决定将请求转发给哪个...用户提交表单时,一个配置好的ActionForm对象被创建,并被填入表单相应的数 据,ActionServler根据Struts-config.xml文件配置好的设置决定是否需要表单验证,如果需要就调用...IOC 和 AOP 控制反转模式(也称作依赖性介入)的基本概念是:创建对象,但是描述创建它们的方式。在代码中直接与对象和服务连接,但在配置文件中描述哪一个组件需要哪一项服务。...对于无状态服务对象很理想。 □ 原型 模型确保每次检索都会创建单独的对象。在每个用户都需要自己的对象时,原型模型最适合。 bean 工厂的概念是 Spring 作为 IOC 容器的基础。

72030

J2EE 核心模式学习理解和记录

客户端验证:基于表单的验证、基于抽象类型的验证。...第 3 章:业务层设计考虑和不佳实践: session bean:根据 EJB 规范,每个 session bean 专门服务于一个客户端或者用户,生命时间等于客户端会话时间;在服务器崩溃后无法存活、...至于无状态的 session bean,可以被池化,以高效利用(EJB 容器管理)。 entity bean:实体 bean 是否应该包含业务逻辑?...多数情况下使用无状态会话门面,对于客户端要求也较低,通常只需要单次调用就能完成功能;但也可能需要使用有状态会话门面,通常比较复杂,需要涉及会话事务、会话资源的管理和释放。...业务对象的实现通常有两种方式:POJO + JDO 或者 Entity Bean + BMP/CMP。业务对象包含业务逻辑和业务状态

60510

ssh工作原理

3、根据struts.xml配置,找到需要调用的Action类和方法, 并通过IoC方式,将值注入给Aciton。4、Action调用业务逻辑组件处理业务逻辑,这一步包含表单验证。...null或返回一个包含ActionMessage的ActuibErrors对象, 就表示表单验证成功; -(5)ActionServlet根据ActionMapping所包含的映射信息决定将请求转发给哪个...用户提交表单时,一个配置好的ActionForm对象被创建,并被填入表单相应的数据,ActionServler根据Struts-config.xml文件配置好的设置决定是否需要表单验证,如果需要就调用ActionForm...IOC 和 AOP 控制反转模式(也称作依赖性介入)的基本概念是:创建对象,但是描述创建它们的方式。在代码中直接与对象和服务连接,但在配置文件中描述哪一个组件需要哪一项服务。...对于无状态服务对象很理想。 □ 原型 模型确保每次检索都会创建单独的对象。在每个用户都需要自己的对象时,原型模型最适合。 bean 工厂的概念是 Spring 作为 IOC 容器的基础。

94230

Java 最常见的 208 道面试题:第六模块答案

由于HTTP协议是无状态的协议,所以服务端需要记录用户的状态时,就需要用某种机制来识具体的用户,这个机制就是Session.典型的场景比如购物车,当你点击下单按钮时,由于HTTP协议无状态,所以并不知道是哪个用户操作的...Cookie与 Session,一般认为是两个独立的东西,Session采用的是在服务器端保持状态的方案,而Cookie采用的是在客户端保持状态的方案。...手动通过URL传值、隐藏表单传递Session ID。 用文件、数据库等形式保存Session ID,在跨页过程中手动调用。 70. spring mvc 和 struts 的区别是什么?...在Spring整合时,SpringMVC的Controller Bean默认单例模式Singleton,所以默认对所有的请求,只会创建一个Controller,有应为没有共享的属性,所以是线程安全的,如果要改变默认的作用域...性能方面 Struts2是类级别的拦截,每次请求对应实例一个新的Action,需要加载所有的属性值注入,SpringMVC实现了零配置,由于SpringMVC基于方法的拦截,有加载一次单例模式bean注入

71520

SpringMVC知识一锅烩

(post/get) 如果表单不符合,就会出现异常,可以是数组 可以添加在类上面,类似struts2的namespace 则下面的方法都需要有类上父路径才能访问 第一个Controller 第一个Controller...,这样可以防止表单重复提交 forward : return 'forward:/item/itemlist.action' // 默认 void : ajax 返回视图 参数绑定 由于Controller...只需要自定义一个异常类,然后在异常处理器判断这个发生的异常是否是我们自定义的异常类,然后进行对应的操作 上传文件 设置表单name,设置表单post 以及enctype="multipart/form-data...的区别 springMVC是单例, Struts2为多例 springMVC参数绑定在形参 , Struts2 绑定成员变量 springMVC没有值栈 Struts2 有值栈 springMVC的入口是一个...Servlet, Struts2为一个Filter

1.2K00

2017最全的Java学习方向

3DHTML编程 7、HTML基础:基本HTML标签;常见表单标签;DIV+CSS布局; 8、JavaScript知识:javascript基本语法;javascript基本对象特征;Json语法;深刻理解...:MVC与struts体系;Action和Result;国际化和标签库;文件上传、下载;类型转换和输入检验;拦截器与插件开发; 21、Hibernate:ORM与持久化映射;关系映射、继承映射;延迟加载...、性能调优;HQL查询、条件查询、SQL查询;二级缓存和查询缓存; 22、Spring:IoC与Bean配置、管理;Bean生命周期;SP、EL;AOP与事务权限控制;S2SH整合开发;Spring整合...Jpa; 9经典Java EE 23、JSF:MVC与JSF设计理念;托管Bean与导航模型;JSF流程与事件机制;JSF标签库;类型转换与输入检验; 24、EJB及相关技术:JNPI与RMI;会话Bean...及其生命周期;IoC与EJB拦截器;JMS与MDB;会话Bean与Web Service; 25、JPA:ORM框架与JPA规范;JPA注解与常用API;JTA事务与事务管理;JPQL查询;EJB、JPA

1.5K50

框架篇

1、谈谈你对Struts的理解。   ...面向对象设计的软件内部运行过程可以理解成就是在不断创建各种新对象、建立对象之间的关系,调用对象的方法来改变各个对象的状态和对象消亡的过程,不管程序运行的过程和操作怎么样,本质上都是要得到一个结果,程序上一个时刻和下一个时刻的运行结果的差异就表现在内存中的对象状态发生了变化...2.为了在关机和内存空间不够的状况下,保持程序的运行状态,需要将内存中的对象状态保存到持久化设备和从持久化设备中恢复出对象的状态,通常都是保存到关系数据库来保存大量对象信息。...9.对事件支持不够.在struts中,实际是一个表单Form对应一个Action类(或DispatchAction),换一句话说:在Struts中实际是一个表单只能对应一个事件,struts这种事件方式称为...由于Session代表一次会话过程,一个Session与一个数据库连接相关连,所以Session最好不要长时间保持打开,通常仅用于一个事务当中,在事务结束时就应关闭。

72020

SSH学习(一)—— 基础概念篇

一、前言 最近有个小面试需要复习以前用到的SSH框架,忘得差不多了当然当时也差不多就是不会的状态,现在花了三四天的时间进行一个简单的学习,总结一些概念性的东西放在这儿。...Bean(Session Bean),实体Bean(Entity Bean)和消息驱动Bean(MessageDriven Bean) JavaBean:实体类,在大部分情况下和POJO是同义词,基本构成就是一些字段和与之对应的...Session 一个会话被用于与数据库的物理连接。Session对象是轻量级的,并被设计为每次实例化都需要与数据库的交互。持久对象通过 Session 对象保存和检索。...Session 对象不应该长时间保持开启状态因为它们通常情况下并非线程安全,并且它们应该按照所需创造和销毁 一般可通过sessionFactory.getCurrentSession()方法获得...对应着前台的控制层,而Spring则负责实体bean的业务逻辑处理,至于Hibernate则是负责数据库的交接以及使用Dao接口来完成操作 SSH从系统职能上可分三层: 表示层 主要涉及Struts

60530

Java零基础到高级

RowSet与离线结果集;数据库连接池;事务管理、批处理; 6、JDBC进阶:存储过程、函数;触发器;理解JCBC的不足;掌握ORM工具优势和设计; 三、DHTML编程 7、HTML基础:基本HTML标签;常见表单标签...;GPS应用; 19、Android高级:网络编程与Web Service;OpenGL_ES 3D开发;整合Google服务;使用NDK开发;java和c相互调试; 八、轻量级Java EE 17、Struts2...:MVC与struts体系;Action和Result;国际化和标签库;文件上传、下载;类型转换和输入检验;拦截器与插件开发; 18、Hibernate:ORM与持久化映射;关系映射、继承映射;延迟加载...、性能调优;HQL查询、条件查询、SQL查询;二级缓存和查询缓存; 19、Spring:IoC与Bean配置、管理;Bean生命周期;SP、EL;AOP与事务权限控制;S2SH整合开发;Spring整合...;会话Bean及其生命周期;IoC与EJB拦截器;JMS与MDB;会话Bean与Web Service; 22、JPA:ORM框架与JPA规范;JPA注解与常用API;JTA事务与事务管理;JPQL查询

53510

Java Web Action DAO Service层次理解

Struts、Spring、Hibernate在各层的作用:     (1)Struts负责Web层:ActionFormBean接收网页中表单提交的数据,然后通过Action进行处理,再Forward...数据的流向是:ActionFormBean接受用户的数据,Action将数据从ActionFormBean中取出,封装成VO或PO,再调用业务层的Bean类,完成各种业务处理后再Forward。...而业务层Bean收到这个PO对象之后,会调用DAO接口方法,进行持久化操作。      ...页面由用户填写表单数据,点击提交按钮,页面的表单数据由Hibernate自动封装到该页面表单所对应的ActionFrom(ActionFrom跟实体类不是一个东西,ActionFrom是页面有什么值,类里就写什么属性...而使用了Spring的话,需要做的就是把DAO层和BIZ层的每个类都写一个接口类,接口类里写实现类的方法,在调用的时候new对象,直接用对象点(.)方法就可以,别忘了对每个对象加上set/get方法。

1.4K20

java中dao层和service的关系(web基础知识有哪些)

Struts、Spring、Hibernate在各层的作用: (1)Struts负责Web层:ActionFormBean接收网页中表单提交的数据,然后通过Action进行处理,再Forward...数据的流向是:ActionFormBean接受用户的数据,Action将数据从ActionFormBean中取出,封装成VO或PO,再调用业务层的Bean类,完成各种业务处理后再Forward。...而业务层Bean收到这个PO对象之后,会调用DAO接口方法,进行持久化操作。...页面由用户填写表单数据,点击提交按钮,页面的表单数据由Hibernate自动封装到该页面表单所对应的ActionFrom(ActionFrom跟实体类不是一个东西,ActionFrom是页面有什么值,类里就写什么属性...而使用了Spring的话,需要做的就是把DAO层和BIZ层的每个类都写一个接口类,接口类里写实现类的方法,在调用的时候new对象,直接用对象点(.)方法就可以,别忘了对每个对象加上set/get方法。

1.3K10
领券