struts-config 里配置的一点个人心得
在jsp里一般都是表单 提交 ,或是 超级连接 都是 用***.do来跳转
最开始去的是 actionselvlet
在这里面配置一些信息把 估计 HttpServletRequest,HttpServletResponse是在这时候产生了对象
然后马上产生actionMapping的实例(所有跳转,表单的发送 都会去这个类里的 记住,这是个流程)
然后会调用RequestProcessor类 里面的processPreprocess方法(好象就是起转发request,response的作用)
通常我们也可以重也这个类 然后重写processPreprocess() 方法具体如下
自己重写的话 必须在</struts-config> 里加
<controller processorClass="包名.继承RequestProcessor的类名">
</controller>
作用是在把数据提交到action前 先可以对一些数据进行验证下,可以说 这个类可以当整体功能的
而action是 对某个模块的
如返回false 将不在进行以下操作了。
如果返回true;
就会在 <action-mappings>里找 与 ***.do 前面***对应的名称相同的 path值
<form-bean>里 type是formbean的绝对地址,name可以看成这个地址的简化, 当做一个映射。
<action-mappings>里 type是 action的绝对地址 ,path是这个地址 的简化,可以看成在文件里的一个映射。
{
·如果我们这时候想把 提交的表单和formbean关联起来
就要把<form-bean>里name放在 <action>里, 在aciton里也叫 name 这时候 formbean 就和 action 产生了关系了
接着formbean的对象产生 提交的表单里的数据 如果property属性对应的值在forbean里属性有
对应的就会 立刻调用里面的set方法
最后 把的 4个action需要参数对象 传到action里
· 如果我们想通过参数 来执行不同的方法 可以这么做:
在<form-bean>里的<action >加 parameter="参数名" 这时候跳转到的action我们可以让他 继承自
org.apache.struts.actions.DispatchAction; DispatchAction类
我们不用在写execute方法了
我们写的方法名字 和参数的名对应的值一样就可以了,后面方法的参数和execute方法的一致
方法的用法也和execute一致,如此方法可以写多个
这样的好处是 我们在继承自DispatchAction的action里不需要做更多的判断 只看是哪个页面过来的
就调用与这个页面传递参数相同的方法。
}
{
如果我们不想和formbean关联起来 ,可以用如下方式:
1跳转到 jsp页面
<action forward="/要去的地址" path="/就是填***.do的***" />
解释:path和 表单和跳转的***关联,forward就是要去的地方
2跳转到 action
<action path="/就是填***.do的***" type="包名.***Action">
3跳转
<action parameter="/AddBook.jsp" path="/addbook1" type="org.apache.struts.actions.ForwardAction" />
分析:path 在是jsp页面 发过来的 ***.do里面的 AddBook.jsp可以看成参数 但是理解上是ForwardAction
利用这个参数 决定 跳转到哪个页面
这3个跳转 包括表单的提交 都是会先经过RequestProcessor()的,手写继承RequestProcessor()的也是一样的
}