文章目录

#动态结果

配置时不知道执行后的结果是哪一个,运行时才知道哪个结果作为视图显示给用户。


#全局结果

全局就结果可满足一个包中多个Action共享一个结果。

全局结果位于package元素内。

在相应的Action中可不比再写;


#拦截器

##什么是拦截器?

Struts 2大多数核心功能是通过拦截器实现的,每个拦截器完成某项功能。

拦截器方法在Action执行之前或者之后执行。

拦截器与过滤器原理很相似。

为Action提供附加功能时,无需修改Action代码,使用拦截器来提供。

拦截器栈:

  • 从结构上看,拦截器相当于多个拦截器的组合。
  • 从功能上看,拦截器栈也是拦截器

##为什么需要拦截器?

早期MVC框架将一些通用操作写死在核心控制器中,致使框架灵活性不足,可扩展性降低。

Struts 2将核心功能放到多个拦截器中实现,拦截器可自由选择和组合,增强了灵活性,有利于系统的解耦。

##拦截器的工作原理

拦截器的执行过程是一个递归的过程。

三阶段执行周期:

  • 1:做一些Action执行前的预处理
  • 2:将控制交给后续拦截器或返回结果字符串
  • 3“:做一些Action执行后的处理

##Struts 2自带拦截器


#验证框架实例

新建一个实体类:

使用Struts框架建立一个JSP显示页面:

Action文件

Struts .xml配置文件

RegisterAction-validation.xml

关于Action的访问前置验证条件,通过该校验到达Action,否则无法到达 -->


#国际化和本地化

##Java程序的国际化思路

##国际化实例

最新文章

  1. 巧用location.hash保存页面状态
  2. System.DateUtils 2. IsInLeapYear 判断是否是闰年
  3. 几张图弄明白ios布局中的尺寸问题
  4. 解决html5 video不能播放 能播放声音不能播放视频
  5. HTML简明教程(二)
  6. 软件工程概论---max单元测试
  7. linux chmod命令(转)
  8. LINUX下的时间与时区的设置
  9. BitNami一键安装Redmine(转)
  10. C#获取ip的示例
  11. JavaScript的应用
  12. Android中的手势
  13. 【转】使用vnc连接linux服务器方便hadoop开发调试
  14. BZOJ 3359: [Usaco2004 Jan]矩形( dp )
  15. jQuery中的attr()和prop()使用
  16. Android 屏幕刷新机制
  17. CentOS源码包安装apache、nginx服务
  18. pandas学习(创建多层索引、数据重塑与轴向旋转)
  19. 在Pandas中更改列的数据类型【方法总结】
  20. 手头没证书,如何给https做代理?Nginx TCP转发

热门文章

  1. 关于客户和供应商预制凭证添加WBS字段
  2. python-scrapy爬取某招聘网站(二)
  3. 当会打王者荣耀的AI学会踢足球,一不小心拿下世界冠军!
  4. Spark MLlib中KMeans聚类算法的解析和应用
  5. spark bulkload 报错异常:Caused by: java.io.IOException: Added a key not lexically larger than previous
  6. Centos7 密钥对登陆(适用于群晖DSM)
  7. tomcat版本号修改已dwr配置错误安全漏洞整改
  8. python使用msgpack(umsgpack)
  9. 那些最全面的Windows10安装pytorch踩过的坑以及如何应用
  10. 【Linux】系统打开文件最大数量限制(进程打开的最大文件句柄数设置)