struts2--(3)一些小知识点
来源:互联网 发布:软件关键技术怎么写 编辑:程序博客网 时间:2024/06/05 14:42
1.namespace
struts2中,将通过namespace来查找struts.xml中package配置。默认可以配置成"",表示此package将处理所有action.也可以配置成"/", "/xxx", "/xxx/yyy", 对应的访问路径则为/index.action, /xxx/index.action, /xxx/yyy/index.action.
接受所有action
<package name="default" extends="struts-default">即浏览器地址栏中输入/index.action, /xxx/index.action, /xxx/yyy/index.action,都可以访问
<package name="default" namespace="/" extends="struts-default">
<package name="default" namespace="/xxx" extends="struts-default">
<package name="default" namespace="/xxx/yyy" extends="struts-default">
2. action
在处理action后,具体视图的返回可以有用户定义的action来返回。用户自定义action可以通过三种方法来实现。
a. 用户手动编写一个action,实现其中的execute方法(struts配置中的action默认指定此方法来处理action请求,当然也可以实现action标签中method属性指定的方法)
public class MyAction {private User user;public User getUser() {return user;}public void setUser(User user) {this.user = user;}public String execute() throws Exception {// TODO Auto-generated method stubUserService service = new UserService();if(service.userValidator(user)>0){return "success";}else{return "error";}}}
b. 用户通过编写一个action,此action实现了Action接口
c. 用户编写一个action,此action继承了ActionSupport类,通常都用此中方法,因为它可以直接使用struts2封装好的方法。其execute方法默认返回success.
public class MyAction2 extends ActionSupport {}
3. path路径问题,在浏览器地址上输入要访问的内容,首先去查找web.xml配置文件,交给struts2处理,利用解析到的namespace,利用此名字空间去struts.xml查找对应的package配置,要是没找到,将会调回到web.xml配置文件,利用下面的index页面来回显信息:
<welcome-file-list> <welcome-file>index.html</welcome-file> </welcome-file-list>struts2中的路劲问题是根据action的路劲而不是根据jsp本身的路劲来确定的,所以尽量别使用相对路劲,而应该使用绝对路劲。在Jsp中用request.getContextRoot来拿到webapp的路劲,或者使用myeclipse,通过指定basepath来获取webapp路劲。
4.使用通配符配置
-------使用通配符来配置action
使用通配符匹配来配置action,可以讲配置降到最低。甚至可以只编写一个action配置,来满足所有action请求及未来的添加的action请求。
使用通配符来配置action,所有action需要遵循一定的规范。下面是一个例子,它通过一个配置来满足所有遵循下面规则的action请求处理。
此例子的规范:
配置中所有action名称的命名格式:
action名_method名
如Test_add, 它的Test为class指定的action名,add为其中的一个方法。
配置如下:
<action name="*_*" class="cn.itcast.action.{1}Action" method="{2}"> <result name="success"> /WEB-INF/jsp/{1}_{2}_success.jsp </result> <result name="error"> /WEB-INF/jsp/{1}_{2}_error.jsp </result> </action>
两个action示例:
public class UserAction extends ActionSupport { public String write(){ return SUCCESS; } public String read(){ return ERROR; } } public class TestAction extends ActionSupport { public String add(){ return SUCCESS; } public String update(){ return ERROR; } }
URL:访问示例
http://localhost:8080/Struts2_0001/test/User_read 将访问UserAction的read方法
http://localhost:8080/Struts2_0001/test/User_write 将访问UserAction的write方法
http://localhost:8080/Struts2_0001/test/Test_update 将访问TestAction的update方法
http://localhost:8080/Struts2_0001/test/Test_add 将访问TestAction的add方法
对上面的访问,配置都无需改变,更可贵的是,在后续添加新的action及方法时,只要按照上面的命名约定,此配置都可以支持,不需
要做任何变动。
这种方法的唯一要求就是要遵循相关约定。只有都遵循了相关约定,配置文件可以做到很简单。这一点在实际开发中很重。
- struts2--(3)一些小知识点
- struts2--(3)--一些小知识点---result
- struts2--(3)一些小知识点--方法调用问题
- struts2--(3)--一些小知识点---action接收参数问题
- struts2--(3)--一些小知识点----中文乱码解决方法
- 一些小知识点(3)
- Struts2小知识点1
- struts2 复习小知识点
- Struts2 小知识点整理
- 一些小知识点
- 一些小知识点
- java一些小 知识点
- 一些小知识点
- JavaScript一些小知识点
- Java_一些小知识点
- javascript 一些小知识点
- 一些小知识点
- 一些小知识点
- 现在EJB3实体Bean是纯粹的POJO.
- id的配置
- Python 面向对象编程(三)继承与多态
- pthread使用方法
- 创建一个JFrame对象
- struts2--(3)一些小知识点
- SD卡中的ACMD命令(the application specific commands)
- oracle事务槽(二)
- JS根据userAgent值来判断浏览器的类型及版本
- 解决Spring AOP 事务 配置 失效原因
- Android 实用工具Hierarchy Viewer实战
- Python实现Windows监控agent(上)
- PyMongo基本使用
- 结束