package com.longzhun.interceptor;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
/**
* @Title: MyInterceptor.java
* @Package com.longzhun.interceptor
* @Description: TODO(添加描述)
* @author longzhun
* @date 2011-9-1 下午11:02:02
* @version V1.0
*/
public class MyInterceptor extends AbstractInterceptor {
@Override
public String intercept(ActionInvocation invocation) throws Exception {
System.out.println("default interceptor start");
String s = invocation.invoke();
System.out.println("default interceptor end");
return s;
}
}
package com.longzhun.interceptor;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
/**
* @Title: OtherInterceptor.java
* @Package com.longzhun.interceptor
* @Description: TODO(添加描述)
* @author longzhun
* @date 2011-9-1 下午11:20:58
* @version V1.0
*/
public class OtherInterceptor extends AbstractInterceptor {
@Override
public String intercept(ActionInvocation invocation) throws Exception {
System.out.println("other interceptor start");
String s = invocation.invoke();
System.out.println("other interceptor end");
return s;
}
}
struts.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
<constant name="struts.convention.package.locators" value="longzhun"/>
<constant name="struts.convention.default.parent.package" value="curd-store"/>
<constant name="struts.convention.result.path" value="/WEB-INF/jsp/"/>
<package name="curd-store" extends="convention-default">
<interceptors>
<interceptor-stack name="defaultInterceporStack">
<interceptor-ref name="defaultInterceptor"></interceptor-ref>
</interceptor-stack>
<interceptor name="defaultInterceptor" class="com.longzhun.interceptor.MyInterceptor"/>
<interceptor name="otherInterceptor" class="com.longzhun.interceptor.OtherInterceptor"></interceptor>
</interceptors>
<default-interceptor-ref name="defaultInterceporStack"></default-interceptor-ref>
</package>
</struts>
HelloWorld.java
package com.longzhun;
import org.apache.struts2.convention.annotation.InterceptorRef;
import org.apache.struts2.convention.annotation.InterceptorRefs;
import org.apache.struts2.convention.annotation.Namespace;
import com.opensymphony.xwork2.ActionSupport;
/**
* @Title: HelloWorld.java
* @Package com.longzhun
* @Description: TODO(添加描述)
* @author longzhun
* @date 2011-8-29 下午10:22:50
* @version V1.0
*/
@Namespace("/helloworld")
@InterceptorRefs({
@InterceptorRef("otherInterceptor"),
@InterceptorRef("defaultInterceporStack")
})
public class HelloWorld extends ActionSupport{
@Override
public String execute() throws Exception {
System.out.println("execute ok");
return SUCCESS;
}
public String haha(){
System.out.println("haha ok");
return "haha";
}
}
分享到:
相关推荐
`struts2-convention-plugin`的核心概念是“约定优于配置”(Convention over Configuration),这意味着框架会基于一定的默认规则自动配置Action、结果页面、拦截器等,减少了显式配置的工作量。在传统的Struts2...
综上所述,"struts2-convention-plugin-2.3.32.jar"是Struts2框架中一个强大且实用的插件,它通过约定优于配置的方式提高了开发效率。然而,理解和掌握其工作原理以及如何有效地结合使用注解是成功运用此插件的关键...
- **拦截器**:拦截器是Struts2的核心机制之一,通过定义拦截器链,可以实现如权限验证、日志记录、性能监控等功能。 - **配置方式**:可以选择传统的XML配置,也可以使用更加灵活的注解和Conventions配置。 - **...
### Struts2-Convention插件使用详解 ...Struts2-Convention插件极大简化了Struts2应用的开发与维护,通过约定优于配置的原则,减少了繁琐的XML配置需求,使开发者能够更加专注于业务逻辑的实现。
若将基于Codebehind的项目迁移到Convention,需关注命名规则调整、拦截器配置变化等细节,具体指导可见官方文档。 #### 五、Hello World示例 以最简单的示例入手,展示如何利用Convention Plugin快速响应HTTP请求...
首先,Struts2的核心jar包是框架运行的基础,它们提供了Action映射、拦截器、结果类型和其他关键功能。对于Struts2 v2.1.6,以下是一些必要的jar文件: 1. **struts2-core.jar** - 包含Struts2框架的核心组件,如...
Struts2 Convention 插件是Struts2框架的一个重要组件,自版本2.1起,它取代了Codebehind Plugin,旨在实现Struts2的零配置目标,简化开发流程。这个插件通过遵循一系列预定义的命名约定,自动地映射Action、结果...
2. **拦截器(Interceptor)**:这是Struts2的一个强大特性,它可以拦截Action调用前后,实现事务管理、日志记录、权限验证等功能。通过配置拦截器栈,开发者可以灵活控制请求处理流程。 3. **OGNL(Object-Graph ...
Struts2框架的优势在于其强大的拦截器(Interceptor)机制,允许开发者定义自定义的行为,如日志记录、权限检查等,可以在请求处理流程中的不同阶段插入。此外,它还支持多种结果类型,如Redirect、Stream等,方便...
- `struts2-convention-plugin.jar`: 提供了基于约定优于配置的功能,使得开发者无需手动编写大量的XML配置,而是根据文件命名规则自动绑定Action和结果。 3. **拦截器库** - `struts2-dojo-plugin.jar`: 提供了...
2. **Interceptor拦截器**:类似于Servlet的Filter,拦截器是Struts2的一大特色,可以在Action执行前后插入自定义的逻辑,如日志记录、权限验证等。 3. **Tiles**:Struts2集成了Tiles框架,用于页面布局和组合,使...
此外,Struts2还支持插件机制,开发者可以通过安装和配置不同的插件来扩展其功能,如Struts2-convention-plugin用于自动映射Action和Result,Struts2-dojo-plugin提供与Dojo JavaScript库的集成等。 总结来说,...
2. **插件**:如`struts2-convention-plugin.jar`,支持自动配置和约定优于配置的原则,减少XML配置文件的工作量;`struts2-json-plugin.jar`,用于JSON数据交互,支持AJAX和Web服务。 3. **依赖库**:Struts2依赖...
Struts2 Convention Plugin 是从 Struts2.1 版本开始引入的一个插件,它的主要目标是实现 Struts2 框架的零配置。通过约定优于配置的原则,开发者可以更加专注于业务逻辑,减少大量的 XML 配置工作。以下是 ...
例如,`struts2-core.jar`包含了框架的基础类和接口,`struts2-convention-plugin.jar`提供了约定优于配置的特性,使得类和动作的映射变得简单。此外,可能还有其他如`struts2-json-plugin.jar`、`struts2-dojo-...
此外,还需要配置struts2的XML配置文件(struts.xml或struts-default.xml),定义Action、结果映射、拦截器栈等。在IDE如Eclipse或IntelliJ IDEA中,可以使用Maven或Gradle构建工具自动管理依赖。 总的来说,Struts...
9. **灵活性**:Convention-plugin的灵活性体现在可以根据项目需求调整其行为,例如,通过改变注解的属性,或者添加自定义的插件和拦截器,来适应特定的业务逻辑。 10. **扩展性**:除了内置的约定,开发者还可以...
在使用Struts 2.3.16.3开发时,开发者需要理解Action配置,包括Action类、结果类型、拦截器栈等。Action类通常会继承自`com.opensymphony.xwork2.ActionSupport`,并重写execute方法。Struts 2的配置文件通常为...