structs2框架
工作流程原理:
1.请求先到达filter中央控制器
2.然后为Action创建代理类
3.将各个服务存放在拦截器中,执行完成拦截器后再去执行Action类,action类调用service,再调用dao
4.得到结果字符串创建result对象
5.转向相应的视图
Struts2框架提供三种方式将参数存入值栈
1.属性驱动模式(Action中需提供参数名的set方法)
2.模型驱动模式(必须实现模型驱动接口)
3.域驱动模式
struts2的和兴是webWork 在Struts1的基础上融合了WebWork
标准的返回值:
Action基类中,定义了五个标准的返回值:
SUCCSCC,ERROR,INPUT,LOGIN,NONE, 默认success
struts2的ResultType,
<result> 的type的属性值默认是dispatcher
dispatcher:用来转向页面,通常处理jsp
freemaker:处理FreeMarker模板
httpheader:控制特殊http行为的结果类型
stream:向浏览器发送InputStream对象,通常用来处理文件下载,还可以用于返回Ajax数据
velocity:处理Velocty模板
xslt:处理XML/xlst模板
painText:显示原始文件内容
chain:用来处理Action链,chain其实只是后一个Action执行完毕之后forward到另一个action他们之间共享HttpServletRequest
redirect:重定向到一个URL
Redirection:重定向到一个Action中
redirect,redirection,chain 的区别
使用type=“redirection”或type=“redirect”提交到一个action并且需要传递一个参数。
区别:使用type=“redirectAction”时,结果就只能写Action配置名,不能带后缀..Action
<result name="success" type="redirectAction" user?u_id=loginBean.u_id></result>
当type=“redirect”时,结果应该是Action配置名加后缀
<result name="success" type="redirect">useraction?u_id=${loginBean.u_id}></restult>