struts2的一些用法
- action搜索顺序
http://localhost:8080/struts/path1/path2/path3/xxx.action
当你在struts2.xml文件的namespace是/的时候然后你输入随便输入路径你能正确访问你要寻找的视图层吗?
答案是能的。
为什么?
存在的情况
因为第一步他会判断package是否存在,如path/path2/path3
如果存在:判断action是否存在
如果不存在:就会去namespace的package去寻找action,如果不存在就报错。
不存在的情况:
检查上一级路径的packa是否存在(直到默认namespace),重复第一步
2.动态调用方法
1.指定method属性
创建helloWorldAction类:
配置struts.xml method属性指定helloWorldAction类的方法
result返回结果集 默认是success.jsp.当然result里面有属性name也就是你返回的结果集的视图
创建视图层success.jsp
2.感叹号方式(官方不推荐)
创建HelloWorldAction类
配置struts.xml文件 在这需要注意的是需要配置一个常量
struts.enable.DynamicMethodInvocation动态调用方法
否则不能生效
创建视图success.jsp
访问路径例如:http://localhost:8080:项目名/namespace/helloworld!add.ation
注意!add 其实是你action类的方法名 action是后缀
3.通配符
创建action类
配置struts.xml文件 method{1}指的是你的action类里面的所有方法 name=“helloworld_其中代表的是方法”
创建视图
访问路径访问路径例如:http://localhost:8080:项目名/namespace/helloworld_add.ation
3. 默认action
解决界面报404错误,给用户一个良好的体验界面报404错误,给用户一个良好的体验。
在struts.xml配置一下就ok了
默认的action的name与action的name一致,否则没有效果!