一.其原理是:
1.1
用户请求被FilterDispatcher转发给相应的ACTION的处理,如果action处理用户请求返回为
SUCCESSS,返回给用户的是相应的视图。
1.2 配置文件所在的catalog
二. 完成程序国际化
主要思想:程序界面中需要输出国际化信息的地方,我们不要在页面中直接输出信息,而是
输出一个key的数值,改key的数值在不同的语言环境下对应不同的字符串。
2.1
struts2支持jsp页面的临时加载文件,也支持全局属性加载资源文件。
加载资源文件可以通过strutss.properties文件来加以定义。如:
或者在struts.xml文件中配置 如:
注:这里的key是struts2所需要的国际化资源文件。
2.2
资源文件的命名格式为:baseName_语言代码(zh)_国家代码(cn).properties
2.3
输出资源的信息 采用:<s:text name="xxxxxx" /> 等.
三. Action接口 和ActionSupport类
3.1 Action接口
5个字符串常量和一个execute方法,
目的:程序中应该尽量避免直接返回数字常量、字符串常量等。
3.2 ActionSupport类
他是一个工具类,他可以实现一个ACTION接口,还可以实现validate接口(数据的校验).
四.线程模式
struts2的action对象为每一个请求产生一个实例,没有线程安全问题。
五、struts2映射文件struts.xml配置详解
5.1 属性定义元素
<constant>标签来定义一个属性,改属性与struts.properties的属性重名,并覆盖struts.properties文件
的数值。
5.2 导入子文件元素<include>
5.3 包配置
5.4 加载顺序
5.5 nameSpace question
Struts.xml配置
造成:
原因:
如果没有指定 namespace 属性,默认 namespace 是 ""。使用 namespace 可以方便于按不同目的规划对应用的访问规则。比如不同 namespace 下配置了不同的拦截器就可以实现权限的控制,如 "/secure" 下已登陆用户才能访问,"/public" 下可公开访问的。
配置了 namespace 直接就是反应在访问 URL 上,例如 namespace="/secure" name="test" 的 action
所以在访问的时候,地址栏上输入的是:http://localhost:8080/hibernateTest/yuan/login.action
在错误的情况下如何解决?????????