Struts2注解 特别注意

1 Struts2注解的作用

使用注解可以用来替换struts.xml配置文件!!!

2 导包

  必须导入struts2-convention-plugin-2.3.15.jar包,它在struts2安装包下lib目录中。

3 通过配置文件学习对应的注解

@Action来代替<action>元素!

l  String value():指定访问路径;

l  Result[] results():指定局部结果。

@Result来代替<result>元素!

l  String name():指定结果名称;

l  String location():指定结果路径。

@Namespace代替<package>的namespace属性:

l  String value():指定名称空间。

@ParentPackage代替<package>的extends属性:

l  String value():指定父包名称


@Namespace("/order")

@ParentPackage("struts-default")

publicclass OrderAction extends ActionSupport  {

@Action(value="add", results={

@Result(name="success", location="/index.jsp"),

@Result(name="input", location="/add.jsp")})

public String add() {

System.out.println("add()");

returnSUCCESS;

}

@Action(value="mod", results={@Result(name="success", location="/index.jsp")})

public String mod() {

System.out.println("mod()");

returnSUCCESS;

}

@Action(value="del", results={@Result(name="success", location="/index.jsp")})

public String del() {

System.out.println("del()");

returnSUCCESS;

}

}

4 注解相关常量

  struts.convention.classes.reload,默认值为false。表示在修改注解后需要重启Tomcat!

Struts2约定(了解)

1 什么是约定

使用约定可以连注解都不写,是真正的零配置,但是它的能力有限,所以这种方式不可取的。

l  Struts2会对Action的命名,以及Action的包名都有限制;

l  Struts2会对结果页面的存放路径,以及结果页面的名称也都有限制。

  使用约定与使用注解一样,也要导包:struts2-convention-plugin-2.3.15.jar

1        约定对Action的限制

约定Action类名

要求Action的命名必须以“Action”为后缀,例如:UserAction、BookAction等等。可以使用下面常量来修改后缀限制:

<constant name="struts.convention.action.suffix" value="Action"/>

约定Action包名

要求Action必须放到action、actions、struts、struts2包中。例如:cn.itcast.action、cn.itcast.sturts、cn.itcast.action.user等等。可以使用下面常量来修改Actoin的包

<constant name="struts.convention.package.locators" value="action,actions,struts,struts2"/>

3 通过Action的限制得到访问路径

上面已经知道约定对Action的限制,现在通过Action的包名和类名得到它的访问路径

例如:cn.itcast.action.UserAction,它的访问路径为/user.action

例如:cn.itcast.action.user.UserAction,它的访问路径为/user/user.action。因为在约定包action后面还有一层包user,那么这一层就是名称空间了。

例如:com.action.cn.itcast.user.UserAction,它的访问路径为/cn/itcast/user/user.action。

例如:cn.itcast.action.user.UserListAction, 它的访问路径为/user/user-list.action。当Action名称由多个单词构成,那么在访问路径中使用“-”来连接多个单词。

4 通过Action的限制得到结果页面路径

Struts2约定限制结果页面必须放到/WEB-INF/content/目录中,可以通过下面常量来修改这个限制。

<constant name="struts.convention.result.path" value="/WEB-INF/content/"/>

当cn.itcast.action.UserAction返回结果为success时,Struts会依次查找如下结果页面:

l  /WEB-INF/content/user-success.jsp;

l  /WEB-INF/content/user-success.html;

l  /WEB-INF/content/user.jsp

当cn.itcast.action.user.UserListAction返回的结果为error时,Struts会依次查找如下结果页面:

l  /WEB-INF/content/user/user-list-error.jsp;

l  /WEB-INF/content/user/user-list-error.html;

l  /WEB-INF/content/user/user-list.jsp。

转 http://blog.csdn.net/wk313753744/article/details/19920195

时间: 2024-11-05 18:58:49

Struts2注解 特别注意的相关文章

Annotation(四)——Struts2注解开发

Hibernate和Spring框架的开发前边总结了,这次看一下流行的MVC流程框架Struts2的注解开发吧.Struts2主要解决了从JSP到Action上的流程管理,如何进行Uri和action类中每个方法的绑定这是重点,在这里先简单看一下配置文件中的简单配置: [html] view plaincopyprint? <span style="font-size:18px;">  <!-- 这是包名和命名空间的声明 --> <package name

Struts2注解

需要包 struts2-convention-plugin.jar @Namespace("/xxxx/zzz") public class ConnectionAction { /** Action执行方法* */ @Action(value = "ConnectManage", results = { @Result(name = "success", location = "aaa.jsp"), @Result(name

Struts2注解指定Action扫描路径

使用spring和struts2集成全注解时 struts2默认扫描包名 action,actions,struts,struts2 的包 如果action不存在以上包时 就不会扫描到 此时需要在struts.xml中增加注释 <constant name="struts.convention.package.locators" value="action,actions,struts,struts2,admin"/> admin为增加的包名 Strut

Struts2注解错误之There is no Action mapped for namespace /

我用最新版本的Struts2.3.4做注解操作的时候,一直出现这个问题.花了近两个小时才解决,错误原因让人啼笑皆非-- [plain] view plaincopy There is no Action mapped for namespace [/] and action name [test] associated with context path [/test]. - [unknown location] at com.opensymphony.xwork2.DefaultActionP

struts2注解实现页面的跳转

注解实现的页面跳转其特点是不用配置文件struts.xml因而可以实现零配置. action类: package cn.mrcast.action; import org.apache.struts2.convention.annotation.Action; import org.apache.struts2.convention.annotation.Result; import org.apache.struts2.convention.annotation.Results; import

ssh2项目整合 struts2.1+hibernate3.3+spring3 基于hibernate注解和struts2注解

项目目录结构如下: 核心配置文件: web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLo

Struts2注解详解

一,引入支持Struts2支持注解开发jar包: struts2-convention-plugin-2.1.8.1.jar(支持Struts2框架注解开发的jar包) 二,Struts2使用注解开发需要遵循一些规范: 1,Action要必须继承ActionSupport父类: 2,Action所在的包名必须以  .action 结尾. 三,action中常用的注解: 1,@ParentPackage:对应xml配置文件中的package的父包,一般需要继承struts-default. 2,@

struts2注解总结[email&#160;protected]

写在前面: 本文主要讲的是注解方式的拦截器的使用,所以xml文件的不会细讲,文中的代码也比较简单,没有什么权限控制啊,拦截信息之类的代码,重点还是说明注解方式的使用方法,了解了使用方法之后,内容可以自行扩展,这个根据自己的需要来,好了,就这样. 上次写了@Action和@Result两种注解的使用方式,这次要讲的是@Interceptor和@ParentPackage 介绍: @InterceptorRef/@InterceptorRefs: @InterceptorRef可以就是用来配置拦截器

Struts2 注解

struts2-convention-plugin-2.x.x.jar是用于支持注解的包: 所以要使用注解方式,我们必须添加这个额外的包. 并且在WEB.XML文件中struts过滤器设置为 <filter> <filter-name>struts2</filter-name> <filter-class> org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter </f