文档详情

Struts2-convention-plugin中文文档.doc

发布:2017-09-21约2.04万字共18页下载文档
文本预览下载声明
Struts2 Convention Plugin中文文档Introduction 从struts2.1版本开始,Convention Plugin作为替换替换Codebehind Plugin来实现Struts2的零配置。 ???? 包命名习惯来指定Action位置 ???? 命名习惯制定结果(支持JSP,FreeMarker等)路径 ???? 类名到URL的约定转换 ???? 包名到命名空间(namespace)的约定转换 ???? 遵循SEO规范的链接地址(即:使用my-action 来替代 MyAction) ???? 基于注解的Action名 ???? 基于注解的拦截机(Interceptor) ???? 基于注解的命名空间(Nameespace) ???? 基于注解的XWork包 ???? 默认action以及默认的结果(比如:/products 将会尝试寻找com.example.actions.Products 或 ducts.Index进行处理) 无需配置Convention即可使用Convention,Convention的某些约束习惯可以通过配置属性来控制,您也可以在类中覆写其中的方法来达到扩展目地。 安装 使用Convention插件,你需要将其JAR文件放到你应用的WEB-INF/lib目录中,你也可以在你Macen项目的POM文件中添加下面包依赖 ? dependency? ????groupIdorg.apache.struts/groupId? ????artifactIdstruts2-convention-plugin/artifactId? ????version2.1.6/version? /dependency? 转换基于Codebehind项目到Convention 跳转到此页面,查看需要修改的变化和小提示 如果你想在你系统中结合Convention插件使用REST。需要在你项目的struts.xml中添加如下配置 ? constant?name=struts.convention.action.suffix?value=Controller/? constant?name=struts.convention.action.mapAllMatches?value=true/? constant?name=struts.convention.default.parent.package?value=rest-default/? Hello world 到目前为止,你已经在你项目中添加了Convention插件支持,首先我们从一个非常简单的例子开始入手。本例中,我们将演示根据访问URL来访问固定的Action,默认情况下,Convention会默认所有的结果页面都存储在WEB-INF/content下,你也可以在struts的properties文件中设定struts.convention.result.path的值到一个新的路径。路径最后“/”是不必要的,Convention会自动进行处理。以下是本例的JSP文件 WEB-INF/content/hello-world.jsp ? html? body? ????Hello?world!? /body? /html 启动Tomcat或其他你所使用的JEE容器,在浏览器访问http://localhost:8080/hello-world , 你可看到以下信息: Hello world! 这表明,Convention已经能正常运行,并找到了结果。即使在没有action存在情况下,convention也会根据URL规则来找到结果页面。 Code behind hello world 我们继续扩展本例并添加代码实现类。为了实现本功能,首先需要Convention能正确找到我们的Action 类,默认情况下,Convention会找到com.opensymphony.xwork2.Action 的实现类,或制定包中以Action 结尾的类 action Convention使用以下方法来搜索类路径,首先,Convention会从根package中寻找包名含有struts, struts2, action or actions 的任意packages。下一部,Convention从前一步找到的package以及其子package中寻找 com.opensymphony.xwork2.Action 的实现以及以Action结尾的类,下面为Convention寻找的类 ? com.example.actions.MainAction? ducts.Display?(implements?com.opensymphony.xwork2.Action)?
显示全部
相似文档