从hello world看struts框架的流程

从hello world看struts框架的流程
                            -----例子来自《速动画教学系列》

刚写出第一个小例子,充分消化一下先
配置文件:struts-config.xml
定义了<form-beans>表单对应的java类helloForm.java
<global-forwards>定义一个forwards
<action-mappings> 定义action


先看唯一的一个jsp页面 hello.jsp
里面包含
1.<html:form action="/hello">
任何包含在<form>中用来接收用户输入的标签(<text>、<password>、<hidden>、<textarea>、<radio>

、<checkbox>、<select>)必须在相关的form bean中有一个指定的属性值。
2.<logic:present>
用来判断JavaBean在特定的范围内是否存在,只有当JavaBean存在,才会执行标签主体中的内容


提交表单后,转到helloForm bean
 helloForm Bean中的属性和HTML表单中的字段一一对应
Struts框架采用helloForm Bean把视图中的表单数据传给控制器组件。
helloForm Bean被存放在request或session范围内,它能够被JSP组件、Struts标签以及Action类共享。
在helloForm bean中由validate()方法负责完成表单验证,如返回null或者返回一个不包含

ActionMessage的ActionErrors对象,就表示表单验证成功。
如果validate()方法返回一个包含一个或多个ActionMessage的ActionErrors对象,就表示表单验证失败

,此时ActionServlet将直接把请求转发给包含用户提交表单的JSP组件。在这种情况下,不会在创建

Action对象并调用Action的execute()方法。

 

ActionServlet根据ActionMapping实例包含的映射信息决定将请求转发给哪个Action.如果相应的Action

实例不存在,就先创建这个实例,这里是HelloAction.java,然后调用Action的execute()方法。

Action的execute()方法通过request.setAttribute()方法初始化personbean,
并返回一个ActionForward对象,ActionServlet再把客户请求转发给ActionForward对象指向的hello.jsp

hello.jsp中的logic标签发现personbean的存在,执行相应操作

完成整个流程!

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值