昨天接触到了struts2,有些细节没有写下来,补充一下。
1.关于Action类
昨天定义的LoginAction类里面有两个私有字段username和password,以及其get和set方法,这个名字有什么要求吗?
首先要搞清楚,struts2接受到客户端请求时会怎么做!当struts2接受客户端请求时,会调用Action类的setXXX()方法。也就是说struts2会自动调用setXXX()方法,而不是寻找Action的XXX属性。
所以,Action的属性名可以和表单提交的数据字段不一样,但是方法中setXXX(),getXXX()必须和表单字段一样。但是一般取名都是和表单字段一样。
2.struts2是基于请求转发的
在昨天的result.jsp页面中用到了EL表达式,username : ${requestScope.username} password : ${requestScope.password} ,由于struts2是基于请求转发的,数据由login.jsp输入,struts2框架拦截请求,分析后转发至LoginAction,处理后,再由struts2转发至result.jsp,得到显示,整个过程是一个请求,所以这个EL表达式中的requestScope可以获得输入的数据。
3.程序流程分析
见上一个问题。
记住一点,struts2是请求转发(requestDispatch)而不是重定向(rewrite)
本文探讨了Struts2框架中Action类的属性与方法如何与客户端请求交互,解释了Struts2基于请求转发的工作原理,并详细分析了从登录表单提交到结果显示的完整流程。
275

被折叠的 条评论
为什么被折叠?



