struts中数据在action与jsp中的传递总结

时间:2024.5.15

struts中数据在action与jsp中的传递总结。

Struts中servlet之间数据的传递方式归纳如下:

1 我们可以通过 formbean来实现数据由 html到action之间数据的传递。 Servletaction接收到html请求后,在action-mapping中找到合适的form-bean对html:form表单中的属性进行匹配,然后填充。如果没有匹配上,form将为空。然后将form,actionmapping,httpservletrequest,httpservletresponse.传递给具体的action,将控制权交给action.

这时候action就可以对form 中的数据进行处理了,比如对数据库进行添加修改等工作。

在业务逻辑结束后,action将控制权转还给actionservlet,并且forward到另一个action,或者jsp页面中去。

在jsp页面中。通过jsp标签,我们可以将form中的数据填充到jsp页面中。然后servlet将jsp文件转换成html文件发送给客户。

2 可以通过Request.setAttribute,session.setAttribute。其形式是setAttribute(“pageName”,orginName,scopeType);其中设置的bean,可以是一个任意的对象,或者对象组。这样我们就可以传输多条记录了。也可以使简单的类型。

然后再jsp页面中,通过jsp标签,将数据显示。<bean:write

name=”beanname” proprety=”attributename”> (如果只有一个元素,则不写proprety属性)

3 我们还可以在jsp页面中的javascripe中通过新建javascirpe变量来传递参数。这项参数将通过url进行传输。Action通过 request. getParameter()将数据提出出来。

4 formbean的生存周期有session request page application.我们一般最长使用的是request,和session.

每次frombean,都会根据html表单提交的属性来进行匹配。而往往所根据的html表单是由jsp变换过去的。所以我们需要具体研究一下jsp页面中哪些

标签能够决定一个html表单的生成。首先jsp必须有一个<html:form>标签,它对应于html文件中的<form>标签。

<html:hidden>,<html:select>,<html:text>,等html标签都可以用来生成表单中的属性,

但是其中的property=”propertyname”,必须与form-bean中的propertyname相对应。同时这些标签的初始值可以用 bean ,或者formbean来表示。这是不受限制的。默认情况下,标签的初始值的匹配对象是struts-config-xml中<form-beans>中的name=”formname”。

你可以通过设定 name=”beanName”,来让他匹配对应的bean。

另外需要注意的是,如果你要是用bean来传递数据,那你就必须在action中setAttribute()。

5 这里是我在项目中遇到的一个混乱的错误。就是因为对struts中数据的传输不了解所造成的。在jsp页面中,我想通过bean,formbean两种方式传输数据。然而实际情况是我的formbean是空的,但是他却奇迹般的能够显示出数据。默认情况下,<html:text property=”Name”/> ,后来找到了问题的根源。因为我在action里setAttribute的时候,使用的参数

setAttribute(“formbeanName”,formbean,requestScope);其中

formbeanName恰好等于配置文件中的formbean的名字。所以这时候,jsp页面<html:text>在这个本来该是frombean的假bean中找的了合适的匹配对象,从而歪打正着的成功显示。

更多相关推荐:
不同json数据格式之间的转换

待转换的json数据格式为quotidquot1quottextquotquot菜单quotquotchildrenquotquotidquot11quottextquotquot菜单1quotquotstat...

JavaScript 如何处理 php 返回json格式的数据

JavaScript如何处理php返回json格式的数据JavaScript如何处理php返回json格式的数据下面我们通过一个示例来说明假设php返回如下一个数组查看代码打印01arrarray02array...

PHP如何返回json格式的数据给jquery

PHP如何返回json格式的数据给jqueryjson格式的数据是我们在应用开发中一直会使用到的数据如与jquery打交到或与api打交都会使用到json数据那么PHP如何返回json格式的数据给jquery呢...

labView中如何获取windows当前系统时间

labView中如何获取windows当前系统时间labview82入门到精通的PPT第4章里面有个练习是写一个VI获取当前系统时间并将其转换为字符串和浮点数完成效果如图我要怎么来获取当前系统的时间呢程序如下还...

确保Oracle数据库sql语句高效执行的优化总结(二)

接确保Oracle数据库sql语句高效执行的优化总结一2410053和10046事件24110053事件我们在查看一条SQL的执行计划的时候只能看到CBO最终告诉我们的执行计划结果但是不知道CBO是根据什么来做...

Oracle数据库SQL基础用法与优化总结

Oracle数据库SQL基础用法与优化总结前言2基础用法2一SELECT语句2二三四五六七八九十多表关联2子查询3级联查询HierachicalQuerys5INSERT语句6UPDATE语句7DELETE语句...

Oracle数据库设计中SQL语句优化研究

Oracle数据库中SQL语句优化研究中国电信股份有限公司石嘴山分公司任凤摘要简要介绍数据库中SQL语句优化技术并结合具体的事例探讨了基于Oracle数据库的SQL语句优化关键词Oracle数据库SQL语句优化...

oracle sql语句优化

oraclesql语句优化1选择最有效率的表名顺序只在基于规则的优化器中有效ORACLE的解析器按照从右到左的顺序处理FROM子句中的表名FROM子句中写在最后的表基础表drivingtable将被最先处理在F...

基于Oracle数据库上的SQL语句优化分析

操作符优化IN操作符用IN写出来的SQL的优点是比较容易写及清晰易懂这比较适合现代软件开发的风格但是用IN的SQL性能总是比较低的从ORACLE执行的步骤来分析用IN的SQL与不用IN的SQL有以下区别ORAC...

oracle中sql语句的数据优化

1基本的Sql编写注意事项尽量少用IN操作符基本上所有的IN操作符都可以用EXISTS代替不用NOTIN操作符可以用NOTEXISTS或者外连接替代Oracle在执行IN子查询时首先执行子查询将查询结果放入临时...

oracle sql语句优化

oraclesql语句优化1选择最有效率的表名顺序只在基于规则的优化器中有效ORACLE的解析器按照从右到左的顺序处理FROM子句中的表名FROM子句中写在最后的表基础表drivingtable将被最先处理在F...

抓取oracle数据库耗费资源的sql语句

抓取oracle数据库耗费资源的sql语句oracle数据库连接业务系统而有些sql语句的执行严重影响了oracle的性能就如同mysql的慢查询一样mysql可以开启慢查询日志定位这些造成数据库性能下降的语句...

json数据格式和js操作json总结(3篇)