struts2 convention-plugin实现零配置
零配置并不是没有配置,而是通过约定大于配置的方式,大量通过约定来调度页面的跳转而使得配置大大减少。使得Action等配置不必写在Struts.xml中。
convention-plugin的约定
1. 默认所有的结果页面都存储在WEB-INF/content下,你可以通过设置struts.convention.result.path这个属性的值来改变到其他路径。
<constant name="struts.convention.result.path" value="/WEB-INF/page" />
2. 默认包路径包含action,actions,struts,struts2的所有包都会被struts作为含有Action类的路径来搜索。
你可以通过设置struts.convention.package.locators属性来修改这个配置。
<constant name="struts.convention.package.locators" value="web,action" />
<!--包路径包含web和action的将被视为Action存在的路径来进行搜索。-->
3.Convention 从找到的package以及其子package中寻找 com.opensymphony.xwork2.Action 的实现以及以Action结尾的类
com.example.actions.MainAction
com.example.actions.products.Display (implements com.opensymphony.xwork2.Action)
4.Convention通过如下规则确定URL的具体资源部分:去掉类名的Action部分。然后将将每个分部的首字母转为小写,用’-’分割
可以自定义分隔符:
<constant name="struts.convention.action.name.separator" value="-" />
举例:
- UserAction->user
- UserDetailAction ->user-detail
- com.ustb.web.user.detail.UserDetailAction ->/WEB-INF/content/user/detail/user-detail.jsp
通过注解来配置
一个方法被@Action注释后,只是多了一种调用方式,而不是说覆盖了原来的调用方式
public class HelloAction extends ActionSupport {
@Action("action1")
//调用路径:/action1!method1.action
//映射路径: /WEB-INF/content/action1.jsp
public String method1() {
return SUCCESS;
}
//调用路径:/user/action2!method2.action
//映射路径: /WEB-INF/content/user/action2.jsp
@Action("/user/action2")
public String method2() {
return SUCCESS;
}
}
@Actions注释
public class HelloAction extends ActionSupport {
//可以通过两种路径调用注释方法,会映射到对应的文件
@Actions({
@Action("/different/url"), //调用:/different/url!method1.action 映射:/WEB-INF/content/different/url-error.jsp
@Action("/another/url") //调用:/another/url!method1.action 映射:/WEB-INF/content/another/url-error.jsp
})
public String method1() {
return “error”;
}
@Namespace 注释
@Namespace("/other") //记得加斜杠
public class HelloWorld extends ActionSupport {
// 调用:/other/hello-world!method1.action
public String method1() {
return “error”;
}
@Action("url")
// 调用:/other/url!method2.action
public String method2() {
return “error”;
}
@Action("/different/url")
// 调用:/different/url!method3.action
public String method3() {
return “error”;
}
}
@Result注释
public class HelloWorld extends ActionSupport {
@Action(
value="test01",
results={
@Result(
name="error",
location="/pages/test01/say-hello.jsp",
params={
"param1","${param1}",
"param2","${param2}"
}
)
}
)
public String AgentLogin() throws Exception{
}
}
struts2 convention-plugin实现零配置的更多相关文章
- Struts2 Convention Plugin ( struts2 零配置 )
Struts2 Convention Plugin ( struts2 零配置 ) convention-plugin 可以用来实现 struts2 的零配置.零配置的意思并不是说没有配置,而是通过约 ...
- struts2采用convention-plugin实现零配置
最近开始关注struts2的新特性,从这个版本开始,Struts开始使用convention-plugin代替codebehind-plugin来实现struts的零配置. 配置文件精简了,的确是简便 ...
- Convention插件 struts零配置
http://blog.csdn.net/spyjava/article/details/13631961系列课程使用 注解:http://www.yiibai.com/struts_2/struts ...
- 菜鸟学Struts2——零配置(Convention )
又是周末,继续Struts2的学习,之前学习了,Struts的原理,Actions以及Results,今天对对Struts的Convention Plugin进行学习,如下图: Struts Conv ...
- 从struts2.1开始Convention零配置
从struts2.1开始,struts2不再推荐使用Codebehind作为零配置插件,而是改为使用Convention插件来支持零配置,和Codebehind相比,Convention插件更彻底,该 ...
- struts2 Convention插件零配置,使用注解开发
从struts21开始,struts2不再推荐使用codebehind作为零配置插件,而是改用Convention插件来支持零配置.与以前相比较,Convention插件更彻底. 使用Conventi ...
- Struts2 注解零配置方法(convention插件使用)
最近接触到一个新的项目,是做一个使用S2SH的电子商务商城的二次开发.之前使用过S2SH,在此之前的项目中,Struts2 使用的是XML配置而这个项目是使用注解.在这个项目中,注解还不需要使用Act ...
- spring+hibernate+struts2零配置整合
说句实话,很久都没使用SSH开发项目了,但是出于各种原因,再次记录一下整合方式,纯注解零配置. 一.前期准备工作 gradle配置文件: group 'com.bdqn.lyrk.ssh.study' ...
- 13、零配置Struts2开发
Convention 插件 从 Struts 2.1 开始, Struts 可以使用 Convention 插件来支持零配置: Convention 插件完全抛弃配置信息, 不仅不需要使用 strut ...
- struts2使用Convention Plugin在weblogic上以war包部署时,找不到Action的解决办法
环境: struts 2.3.16.3 + Convention Plugin 2.3.16.3 实现零配置 现象:以文件夹方式部署在weblogic(10.3.3)上时一切正常,换成war包部署,运 ...
随机推荐
- 【转】TypeScript中文入门教程
目录 虽然我是转载的,但看在Copy这么多文章也是很幸苦的好吧,我罗列一个目录. 转载:<TypeScript 中文入门教程> 17.注解 (2015-12-03 11:36) 转载:&l ...
- info.plist 属性讲解
1 常用项: Application requires iPhone environment:如果应用程序不能在ipodtouch上运行,设置此项为true; Application usesWi-F ...
- jQuery的preventDefault()
1. 含义: preventDefault() 方法阻止元素发生默认的行为(例如,当点击提交按钮时阻止对表单的提交). 2. 语法: event.preventDefault() 3. 例子: 防止链 ...
- Java 去除HTML标签转化成纯文本
package com.ahgw.common.global; import java.util.regex.Pattern; /** * 截取HTML代码 * * @author YangJunpi ...
- NSUserDefaults(数据存储)
NSUserDefaults(数据存储) NSUserDefaults适合存储轻量级的本地数据,比如要保存一个登陆界面的数据,用户名.密码之类的,个人觉得使用NSUserDefaults是首选.下 ...
- VARCHAR2字段关联
SQL> create table a1(id int,name varchar2(10)); Table created. SQL> create table a2(id int,nam ...
- OOD/DDP 中的 SRP 原则
单一职责原则 SRP(The Single Responsibility Principle):一个类应该只有一个发生变化的原因.这里的变化指职责的变化. SRP 很好理解,它的要求是 让一个类只做一 ...
- 数学(概率)CodeForces 626D:Jerry's Protest
Andrew and Jerry are playing a game with Harry as the scorekeeper. The game consists of three rounds ...
- codeforce --- 340D
D. Bubble Sort Graph time limit per test 1 second memory limit per test 256 megabytes input standard ...
- Android手机应用程序开发环境配置(Eclipse+Java+ADT)
参考: Java手机游戏开发实例简明教程 http://dev.10086.cn/blog/?uid-82940-action-viewspace-itemid-1772 Eclipse下载: htt ...