struts2 convention-plugin实现零配置

时间:2022-02-14 11:54:01

零配置并不是没有配置,而是通过约定大于配置的方式,大量通过约定来调度页面的跳转而使得配置大大减少。使得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实现零配置的更多相关文章

  1. Struts2 Convention Plugin &lpar; struts2 零配置 &rpar;

    Struts2 Convention Plugin ( struts2 零配置 ) convention-plugin 可以用来实现 struts2 的零配置.零配置的意思并不是说没有配置,而是通过约 ...

  2. struts2采用convention-plugin实现零配置

    最近开始关注struts2的新特性,从这个版本开始,Struts开始使用convention-plugin代替codebehind-plugin来实现struts的零配置. 配置文件精简了,的确是简便 ...

  3. Convention插件 struts零配置

    http://blog.csdn.net/spyjava/article/details/13631961系列课程使用 注解:http://www.yiibai.com/struts_2/struts ...

  4. 菜鸟学Struts2——零配置&lpar;Convention &rpar;

    又是周末,继续Struts2的学习,之前学习了,Struts的原理,Actions以及Results,今天对对Struts的Convention Plugin进行学习,如下图: Struts Conv ...

  5. 从struts2&period;1开始Convention零配置

    从struts2.1开始,struts2不再推荐使用Codebehind作为零配置插件,而是改为使用Convention插件来支持零配置,和Codebehind相比,Convention插件更彻底,该 ...

  6. struts2 Convention插件零配置,使用注解开发

    从struts21开始,struts2不再推荐使用codebehind作为零配置插件,而是改用Convention插件来支持零配置.与以前相比较,Convention插件更彻底. 使用Conventi ...

  7. Struts2 注解零配置方法(convention插件使用)

    最近接触到一个新的项目,是做一个使用S2SH的电子商务商城的二次开发.之前使用过S2SH,在此之前的项目中,Struts2 使用的是XML配置而这个项目是使用注解.在这个项目中,注解还不需要使用Act ...

  8. spring&plus;hibernate&plus;struts2零配置整合

    说句实话,很久都没使用SSH开发项目了,但是出于各种原因,再次记录一下整合方式,纯注解零配置. 一.前期准备工作 gradle配置文件: group 'com.bdqn.lyrk.ssh.study' ...

  9. 13、零配置Struts2开发

    Convention 插件 从 Struts 2.1 开始, Struts 可以使用 Convention 插件来支持零配置: Convention 插件完全抛弃配置信息, 不仅不需要使用 strut ...

  10. struts2使用Convention Plugin在weblogic上以war包部署时,找不到Action的解决办法

    环境: struts 2.3.16.3 + Convention Plugin 2.3.16.3 实现零配置 现象:以文件夹方式部署在weblogic(10.3.3)上时一切正常,换成war包部署,运 ...

随机推荐

  1. python抓取某学院视频

    视频抓取原理:获取所有的知识类别id->然后获取其子项->根据子项链接分析获取该类课程数->循环获取链接指向的视频.需要安装python库:requestspython解析xml使用 ...

  2. POJ 1860 Currency Exchange 毫无优化的bellman&lowbar;ford跑了16Ms,spfa老是WA。。

    题目链接: http://poj.org/problem?id=1860 找正环,找最长路,水题,WA了两天了.. #include <stdio.h> #include <stri ...

  3. Azure系列2&period;1&period;13 —— CloudBlockBlob

    (小弟自学Azure,文中有不正确之处,请路过各位大神指正.) 网上azure的资料较少,尤其是API,全是英文的,中文资料更是少之又少.这次由于公司项目需要使用Azure,所以对Azure的一些学习 ...

  4. 2153 ACM 仙人球的残影 输出格式

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=2153 中文题目,很简单,但是要注意输出格式,题目中三个字符长度 输出格式:%3d (整数) 思路:将输出看 ...

  5. js的以及前端框架

    js定义:浏览器的脚本语言,用简单的语言实现浏览器的操控 基础语法:基础的运算.函数.对象(原型链.对象构造.class) 所有的框架都是基于原生的js来进行的 js的事件:什么时候.什么情况下处理的 ...

  6. HDU 2680 Choose the best route&lpar;SPFA&rpar;

    Problem DescriptionOne day , Kiki wants to visit one of her friends. As she is liable to carsickness ...

  7. MT【99】2005联赛二试题我的一行解法

    为表示尊敬先展示参考答案:参考答案其实很好的体现了当年出题人陶平生的想法,就是利用已知形式联想到三角里的射影定理,从而写出余弦定理形式,利用三角解题,如下: 这里展示以下几年前做这题时我的解法: $\ ...

  8. display&colon;box的兼容写法

    .box{ /* display */ display: -webkit-box; display: -moz-box; display: -ms-flexbox; display: -o-box; ...

  9. HDU Always Cook Mushroom &lpar;极角排序&plus;树状数组&rpar;

    Problem Description Matt has a company, Always Cook Mushroom (ACM), which produces high-quality mush ...

  10. HDU 4676 Sum Of Gcd 【莫队 &plus; 欧拉】

    任意门:http://acm.hdu.edu.cn/showproblem.php?pid=4676 Sum Of Gcd Time Limit: 10000/5000 MS (Java/Others ...