Struts主要管理页面的跳转,与后台Action的交互等.
用的还是登录的这个例子吧。
从前台到后台的顺序理解
1. 首先,在浏览器中打开页面 ,如login.jsp
红框里的form表单元素里写的是登录是要填账号密码的那些框啊按钮啊神马的
action属性表示的是,在完成账号密码输入,点击“登录”按钮后,容器?将这个表单的内容传到的后台Action类
这个对应关系写在struts.xml中
PS. 这里action的名字是可以随意取的,但最好不要写login...
因为据说struts里已经有一个action名叫login 了,如果再定义成login的话会跳转不过去!!
刚开始写的时候就写成login了,然后就报错了,百度了好久啊摔门!
2. 再看下struts.xml配置文件里的东西:
这个配置文件里红框里的就是自己加的了,
写一个Action类,如果是实现跳转的话,就要在这里加一个action
action里 name属性与之前在JSP里写的form的action属性名对应
这样,在前台提交了表单内容后,Struts会从struts.xml文件里找对应的action,如果找到了,就去执行class对应的类里的方法
3.再看上图中对应的LoginAction.java
struts知道了跳转是写在哪个Actionl类之后,会自动执行这个类里的execute方法
所以登录要实现的逻辑神马的就都写在这个方法里,如判断用户是否存在啊,用户名与密码是否一致 等
包括action调service,service调DAO 等等等等
判断完密码是否正确之后,返回的结果与struts.xml里的result标签也是对应的
如这里,如果用户名密码正确,返回字符串success,然后struts.xml里对应success的是index.jsp页面
所以登录成功后,页面会跳转到index.jsp
PS. struts.xml中result 一般填的就是这三种,success, error,input
如果action里返回的结果在struts.xml中都没有定义,那么会默认跳到input对应的结果中。
4.Done