action映射是struts2框架的基本工作单元,通常,action配置将一个标识符映射到一个业务逻辑的class,当一个请求同action的名字匹配时,框架通过这种映射决定怎么处理请求。一个通常的action如下
<action name="Logon" class="tutorial.Logon">
<result >welcome.jsp</result>
<result name="input">/Logon.jsp</result>
</action>
注意,如果一个action的name中需要有/例如 <action name="admin/home" class="tutorial.Admin"/> ,需要在配置文件中struts.xml添加如下<constant name="struts.enable.SlashesInActionNames" value="true"/> 同时,action的name中最好别使用.和/
通常由一个表单连接到一个action用来处理表单提交的数据。
<s:form action="Login">
<s:textfield label="UserName" name="name"/>
<s:submit/>
</s:form>
默认的,action执行时会执行actioin的execute()方法。但是,我们可以手动的指定action的执行方法。
<action name="delete" class="example.CrudAction" method="delete">将会在指派到action时执行action的delete()方法。如果action中没有execute()方法并且也没指定别的方法,则框架会抛出一个异常。
通配符:很多时候,我们需要不同的action name指向同一个class并执行与该action name相关的方法,
<action name="*Crud" class="example.Crud" method="{1}"> 其中*就是通配符,该action可以匹配任何形如*Crud.action的请求,同时执行该action的*方法。例如一个请求如deleteCrud.action,则会执行该actiond的delete()方法。*可以在name的任意位置如Crud_*。当我们需要为这种通配符方式的action使用校验框架或转换框架时时,可以这样 Crud_input-validation.xml Crud_delete-conversion.xml 动态方法调用:我们可以在填写表单的action时使用例如Login!login.action动态的指派调用Login的login方法。不过,还是推荐使用通配符的方式进行动态匹配。因为使用通配符方式可以为不同的请求单独的建立检验文件等
如果一个action的class属性未指定,则默认将com.opensymphony.xwork2.ActionSupport 作为class属性
<action name="Hello">
//....
</action>
ActionSupport类有一个execute()方法返回SUCCESS和一个input()方法返回INPUT,我们可以通过在packaeg里写上<default-class-ref name=”default.class”>指定我们自定义的默认类
默认action:有时候请求的action没有找到,服务器就会返回404错误,我们可以指定一个默认action,当所有其他的action都没匹配上时就会执行那个默认的action。方法如下
<package name="Hello" extends="action-default">
<default-action-ref name="UnderConstruction">
<action name="UnderConstruction">
<result>/UnderConstruction.jsp</result>
</action>
...
</package>
我们可以在不同的package中定义不同的默认action,但是一个命名空间只能指定一个默认action
一个好习惯就是永远不要从一个页面直接链接到另一个页面,而是通过action链接到别的页面。我们可以通过通配符的方式实现
<action name="*">
<result>/{1}.jsp</result>
</action>
关于通配符的使用*代表一或多个字符除了/
**代表一或多个字符包括/
若想在在action name中使用特殊字符例如*而不是用*来表示匹配可以用 \ 来转义。例如\*name就代表名字为*name的action
分享到:
相关推荐
03 Struts 2.0的Action讲解 04 在Struts 2.0中国际化(i18n)您的应用程序 05 转换器(Converter)——Struts 2.0中的魔术师 06 在Struts 2.0中实现表单数据校验(Validation) 07 Struts 2的基石——拦截器...
拦截器可以用于实现通用的功能,如登录检查、权限验证等,这样就不需要在每个Action中重复编写这些代码。 此外,`ActionSupport`类还提供了错误和异常处理的机制。如果在`execute()`方法中抛出异常,Struts 2会自动...
Struts2.0是Java Web开发中的一个强大框架,它基于Model-View-Controller(MVC)设计模式,为开发者提供了构建可维护性高、结构清晰的Web应用程序的工具。这个"Struts2.0视频教程+struts2.0中文教程"包含的资源旨在...
Struts 2.0的Action讲解 在Struts 2.0中国际化(i18n)您的应用程序 转换器(Converter)——Struts 2.0中的魔术师 在Struts 2.0中实现表单数据校验(Validation) Struts 2的基石——拦截器(Interceptor) 在...
在Struts2.0中,核心概念之一是Action,它被设计为一个简单的POJO(Plain Old Java Object),这使得Action的实现更加灵活和简洁。Action类不再需要继承特定的基类,而是通过配置文件(如struts.xml)来定义其行为。...
Struts2.0是Java Web开发中的一个框架,它的核心组件是Action,它负责处理用户的请求并进行业务逻辑处理。相较于Struts 1.x,Struts 2.0的Action模型有着显著的区别。 在Struts 1.x中,Action类需要继承`org.apache...
### Struts 2.0 in Action — 关键知识点解析 #### 一、Struts 2.0 概述 **Struts 2.0 in Action** 这本书深入介绍了Struts 2.0框架的核心概念及其应用实践。Struts 2.0是一个用于构建Java Web应用程序的开源框架...
Struts2.0是Java Web开发中的一个热门框架,它基于Model-View-Controller(MVC)设计模式,为开发者提供了构建动态Web应用程序的强大工具。API文档是理解任何框架核心功能的关键,对于Struts2.0也不例外。让我们深入...
2. **拦截器(Interceptor)**:拦截器是Struts2.0的一大特色,它可以实现通用的功能,如日志、权限检查等,无需在每个Action中重复编写。通过配置拦截器栈,可以灵活地控制请求的处理流程。 3. **OGNL(Object-...
03 Struts 2.0的Action讲解 04 在Struts 2.0中国际化(i18n)您的应用程序 05 转换器(Converter)——Struts 2.0中的魔术师 06 在Struts 2.0中实现表单数据校验(Validation) 07 Struts 2的基石——拦截器...
1. **Action和Result**: 在Struts 2.0中,Action类是处理用户请求的核心组件。Action类继承自`com.opensymphony.xwork2.ActionSupport`,并覆盖或实现相应的业务方法。完成业务逻辑后,Action会返回一个结果(Result...
Struts2.0是Java Web开发中的一个强大框架,它基于Model-View-Controller(MVC)设计模式,为开发者提供了构建可维护性高、结构清晰的Web应用程序的工具和库。这个“Struts2.0中文教程”是专门为那些希望深入理解并...
1. **Action与结果**:Struts2.0中的Action类是处理用户请求的主要对象,每个Action对应一个业务逻辑。执行完成后,会返回一个结果,这个结果可以是另一个Action、JSP页面或者任何其他资源。 2. **配置灵活性**:...
Struts2.0是一款强大的Java Web框架,它在MVC(Model-View-Controller)设计模式的基础上,提供了灵活且强大的架构来构建企业级的Web应用程序。这个“Struts2.0 Jar包”包含了所有必要的库文件,使得开发者可以便捷...
Struts2.0 jar包是Java Web开发中的一个重要组件,它是Apache Struts框架的一个特定版本。Struts2是一个基于MVC(Model-View-Controller)设计模式的开源框架,用于构建可维护性高、结构清晰的Java应用。该框架极大...
在这个例子中,创建了一个名为`main`的包,继承自`struts-default`,然后定义了一个名为`helloAction`的Action,其结果页面为`success.jsp`。 当用户通过浏览器访问`http://localhost:8080/Xxx/helloAction.action`...
拦截器是Struts2.0框架中一个非常灵活且强大的特性,它可以在Action执行前后进行拦截,执行特定的逻辑,如权限检查、日志记录等。Struts2.0内置了多种拦截器,同时支持自定义拦截器,使得开发者可以根据应用需求定制...