`

关于struts如何实现跨页面的表单参数的传递呢

阅读更多
关于struts如何实现跨页面的表单参数的传递呢?
1,我们需要和配置文件结合起来看下:
  1. <struts-config>
  2. <form-beans>
  3. <form-beanname="loginForm"type="prj8_1.form.LoginForm"/>
  4. <form-beanname="reg1Form"type="prj8_1.form.Reg1Form"/>
  5. </form-beans>
  6. <global-exceptions/>
  7. <global-forwards/>
  8. <action-mappings>
  9. <action
  10. //attribute="loginForm"
  11. input="/login.jsp"
  12. name="loginForm"
  13. path="/login"
  14. scope="request"
  15. type="prj8_1.action.LoginAction"/>
  16. <actionname="reg1Form"forward="/p2.jsp"path="/toP2"scope="session"/>
  17. <actionname="reg1Form"path="/reg1"type="prj8_1.action.Reg1Action"scope="session"/>
  18. </action-mappings>
  19. <message-resourcesparameter="prj8_1.ApplicationResources"/>
  20. </struts-config>

先来简单介绍下各个标签的作用吧!
a,<form-beans></form-beans>中套的都是beans是所有bean的集合,也就是所有ActionForm的集合,<form-beanname="loginForm"type="prj8_1.form.LoginForm"/>,<form-bean/>是单个bean,name属性是一个标识,你可以自己定义,最好还是和ActionForm的名字一样,方便点。type是这个ActionForm的路径了。
b,<global-forwards/>全局跳转。
c,<action-mappings>定义action的映射关系。input表示错误了要跳转到的页面。name表示把得到的参数给谁打包,显然这里就是给上面的loginForm,所以这个属性就把action和actionForm关联起来。path定义了在jsp中form表单中action添什么。scope可以是request,session,application,这影响actionForm的有效范围。type是action的类路径。
d,<message-resources>国际化资源文件。

2,<actionname="reg1Form"forward="/p2.jsp"path="/toP2"scope="session"/>
<actionname="reg1Form"path="/reg1"type="prj8_1.action.Reg1Action"scope="session"/>
这里我们定义了2个jsp分别是p1.jsp和p2.jsp用来实现跨页面的参数传递。
p1.jsp
  1. <html:formaction="/toP2">
  2. ppassword:<html:passwordproperty="password"/><br/>
  3. account:<html:textproperty="account"/><br/>
  4. <html:hiddenproperty="page"value="1"/>
  5. <html:submitvalue="next"/><html:cancel/>
  6. </html:form>


这里对应的actionForm是reg1Form。p1的action处是/toP2,这时候传递的参数就被放置在了session中,得到了暂时的保存,因为scope="session"啊。forward="/p2.jsp"控制当点击了p1的submit跳转到哪里。
p2.jsp
  1. <html:formaction="/reg1">
  2. phone:<html:passwordproperty="phone"/><br/>
  3. address:<html:textproperty="address"/><br/>
  4. <html:hiddenproperty="page"value="2"/>
  5. <html:submitvalue="do"/><html:cancel/>
  6. </html:form>

3,进入p2.jsp后,然后通过action="/reg1"把信息都提交到了Reg1Action中。
4,这里有一个问题,如果我在跨页面要做错误验证呢,比如不为空,长度限制呢。那怎么来确定p1,和p2中的参数呢。可以通过<html:hidden/>隐藏表单来实现,在actionForm中判断是第一个页面的表单就ok了。当然以后还会有更好的方法。
5,重点就是在放置参数的范围上。session
分享到:
评论

相关推荐

    Struts 处理跨页表单

    在“Struts 处理跨页表单”的主题中,我们将深入探讨如何在Struts框架下实现跨页数据的处理和展示,这在大型Web应用中是非常常见的一种需求。 首先,跨页表单通常涉及大量的数据,而一次性加载所有数据可能会导致...

    Struts2中Action接收参数的方法

    2. 在 JSP 页面中,使用表单或其他方式将参数传递给 Action。 3. 在 Action 中,使用设定的属性接收参数,例如 `userName`。 例如,在 Action 中定义了 `userName` 属性,可以在 JSP 页面中使用 `user1!add?...

    应用Struts2处理表单数据

    Struts2会自动将请求参数绑定到这些字段,实现数据的映射。 3. **结果类型(Result Types)**:Struts2支持多种结果类型,如`dispatcher`(默认类型,重定向到JSP页面)、`stream`(用于文件下载)等。Action执行后...

    struts技术实现留言功能

    2. 设计和实现表单JSP页面,用于用户输入和提交数据。 3. 配置struts-config.xml,定义Action和请求之间的映射。 4. 设计数据库模型,使用ORM框架进行数据持久化。 5. 实现服务层,处理业务逻辑和数据库交互。 6. ...

    Struts实现CRUD操作

    - 在JSP页面上展示待修改的记录,这可能通过Action从数据库获取数据并传递给ActionForm实现。 - 用户修改数据后,提交表单,ActionServlet调用更新Action。 - Action验证表单数据,然后调用服务层方法,使用新...

    struts2中action接收参数的方式

    Action类中的方法通常对应着用户界面的各个操作,而这些方法的参数则是用来接收前端请求传递的数据。本篇文章将深入探讨Struts2中Action接收参数的多种方式,以及相关源码解析。 首先,最常见的接收参数方式是通过...

    struts2传递参数及ModelDriven的使用示例

    2. **传递参数**:在Struts2中,可以通过不同的方式传递参数,如表单参数、URL参数、Action上下文参数等。例如,在`main.jsp`中可以使用表单元素将数据提交到服务器,然后在Action类中通过`@ActionParams`注解或者...

    struts2 接收参数

    在`Struts2_0900_ModelDrivenParamInput`这个文件中,可能包含了关于Struts2 0.9.0版本如何处理ModelDriven模式下参数输入的示例代码。ModelDriven模式简化了Action类的编写,使得业务逻辑更专注于处理业务,而不是...

    struts1.x 和 struts2.x向Action里填充jsp参数原理

    总的来说,Struts1.x和Struts2.x都实现了从JSP页面到Action的数据传递,但在实现方式上有显著差异。Struts1.x依赖于ActionForm,而Struts2.x则使用了更强大的OGNL和拦截器机制。了解这些原理有助于我们更好地理解和...

    AJAX和struts2传递JSON数组

    总结来说,通过这种方式,我们可以利用AJAX向Struts2 Action传递JSON数组,实现异步数据交互。这在动态更新页面内容、处理表单提交等场景下非常有用。同时,使用JSON作为数据交换格式,使得前后端的数据交换变得更加...

    struts2 使用action属性接收中文参数(post提交)

    压缩包文件“Struts2_1000_CharacterEncoding”可能包含了示例代码、配置文件或者测试用例,帮助读者理解并解决Struts2框架下处理中文POST参数的具体实现。通过学习这些内容,开发者能够确保在处理多语言环境下,...

    Struts2+Jquery+Ajax

    7. 请求与响应的处理,包括参数传递和数据封装 8. 实例演示:使用Struts2+Jquery+Ajax实现动态加载数据或表单验证 "struts2 jar"文件包含了Struts2框架的核心库,可能包括struts2-core、struts2-convention、struts...

    Struts2 分页实现

    可以使用Struts2的表单标签或者URL参数来实现。 6. **处理请求并更新数据**:Action接收到分页请求后,根据新的页数重新执行数据库查询,然后更新页面显示的数据。 7. **优化用户体验**:考虑一些额外的功能,如...

    Struts2 技术内幕——深入解析Struts2架构设计与实现原理

    对于安全性,Struts2 提供了内置的拦截器来实现输入校验和防止常见的Web攻击,例如XSS(跨站脚本攻击)和CSRF(跨站请求伪造)。拦截器可以在请求到达Action之前进行校验,如果校验未通过,则可以终止请求的进一步...

    Struts2学习笔记(5)-参数传递方法

    在Struts2框架中,参数传递是连接前端页面与后台Action类的重要环节,使得用户交互的数据能够被正确处理。在本文中,我们将深入探讨几种在Struts2中进行参数传递的方法。 1. **Action中直接参数法** 这是最基本的...

    Struts实现的网上书店实例

    1. **Struts配置**:首先,我们需要配置Struts的核心配置文件`struts-config.xml`,其中定义了Action类、ActionForm表单以及Action的映射关系。在这个网上书店实例中,可能会有如“搜索图书”、“添加购物车”、...

    Hiber+Struts实现登陆和修改密码功能

    5. **配置Struts**:在struts.xml文件中配置`&lt;action&gt;`元素,指定`LoginAction`的映射路径、结果页面以及参数绑定。 6. **视图层**:创建JSP页面,如login.jsp和success.jsp(登录成功)、error.jsp(登录失败)。...

    Struts2 使用 Struts2 实现国际化

    总结,实现Struts2的国际化涉及资源文件的创建、配置Struts2的`struts.xml`、设置locale以及在JSP页面中使用国际化标签库。理解和掌握这些步骤对于开发全球化应用程序至关重要。通过阅读源码和利用相关工具,开发者...

    使用struts2 和ajax进行传递json数据

    Struts2和Ajax是两种在Web开发中广泛使用的技术,它们结合使用可以实现前后端的高效交互。在本场景中,我们将重点讨论如何利用Struts2作为后台处理框架,与前端Ajax通过JSON(JavaScript Object Notation)数据格式...

    struts2(包括增删改查的实现,及登录实现。jdbc连接。适合struts2初学者)

    在Struts2中,这些操作可以通过Action类、ActionForm对象和相应的JSP页面来实现。Action类处理用户的请求,ActionForm对象封装表单数据,而JSP则展示数据或接收用户输入。 1. 创建(Create):当用户提交新数据时,...

Global site tag (gtag.js) - Google Analytics