所谓间接实现零配置,是指只要做些初始化的配置之后,在以后的开发中基本上不用再对每个Action做配置
struts.xml这样配置
<action name="*/*" method="{2}" class="workbench.web.actions.{1}Action">
<result name="custom">/view/{1}/${target}.jsp</result>
</action>
struts.properties的配置:
struts.objectFactory = spring
struts.objectFactory.spring.autoWire = name
struts.devMode = true
struts.enable.DynamicMethodInvocation = false
struts.action.extension =
struts.enable.SlashesInActionNames = true
然后写一个BaseAction:
public abstract class BaseAction {
protected final String CUSTOM = "custom";
private String target;
protected final Log logger = LogFactory.getLog(getClass());
public String getTarget() {
return target;
}
public void setTarget(String target) {
this.target = target;
}
protected String render(String _target){
setTarget(_target);
return CUSTOM;
}
}
这样其余的Action都可以直接继承BaseAction,不用再做任何配置
通过return render(target)转发到指定的jsp页面,从而间接实现零配置
public class UserAction extends BaseAction{
private User user;
private UserService userService;
public void setUserService(UserService userService) {
this.userService = userService;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
public String test(){
user = userService.get(1l);
return render("test");
}
}
URL:http://localhost:8080/workbench/User/test
分享到:
相关推荐
- 这是Struts配置文件的根元素,其配置类为org.apache.struts.config.ModuleConfig。该元素下有8个子元素,每个都扮演着不同的角色,如数据源配置、全局异常处理、全局转发等。 #### 2. **Data-Sources元素** - `...
虽然不能直接将 Struts 的 Action 设置为欢迎文件,但可以通过欢迎文件中的 JSP 页面来间接调用 Struts Action。例如: ```xml <welcome-file>welcome.jsp ``` 在 `welcome.jsp` 页面中,可以使用 Struts 的...
7. **插件支持**:Struts2有许多社区提供的插件,如 strut2-dojo-plugin(用于增强AJAX功能)、strut2-convention-plugin(实现约定优于配置)等,这些插件可以极大地扩展Struts2的功能。 通过上述配置,你可以根据...
在Struts2框架中,直接和间接访问Servlet API以及动态方法调用是两个关键概念,它们对理解和优化应用性能至关重要。 首先,让我们深入理解直接访问Servlet API。在传统的MVC模式中,Servlet扮演着控制器的角色,...
- **Struts2**的Action类并不直接依赖Servlet API,而是通过中间层(如拦截器)间接与Servlet API交互,这样的设计使得**Struts2**的Action更加独立,也更容易进行单元测试。 #### 请求处理流程 - **Struts1**执行...
3.初识struts2配置文件 4 (1).web.xml文件 4 (2).struts.xml文件 4 (3).struts.properties(参default.properties) 4 (4)struts-default.xml 4 (5)其它配置文件 4 4.让MyEclipse提示xml信息 4 5.如何...
而Struts2.x通过拦截器栈(Interceptor Stack)实现了动态配置,可以根据需要为不同Action配置不同的拦截器,大大增强了框架的灵活性和扩展性。 综上所述,Struts2.x相对于Struts1.x在多个方面进行了改进和优化,...
- **检查依赖**:了解当前项目对Struts2的依赖情况,包括直接依赖和其他库可能间接依赖的Struts2版本。 - **了解变更**:阅读官方的发行说明,了解2.3.34相对于2.3.26的新增特性和改动,特别是与项目相关的重要...
- **概念介绍**:在Struts2框架中,Action对象可以通过`ActionContext`来间接访问到Servlet API,这是因为Struts2内部实现了Servlet容器的相关功能。这种设计模式能够更好地实现业务逻辑层与Web容器之间的解耦。 - ...
**Struts2**中的Action则通过依赖注入的方式与Servlet API进行交互,这意味着Action无需直接处理HttpServletRequest和HttpServletResponse对象,而是通过Struts2框架提供的服务间接访问这些对象,大大降低了耦合度。...
这个整合的例子对于学习者来说是非常有价值的,因为它展示了如何在实际项目中结合Struts2和DWR,实现动态和交互性强的Web应用。通过这个例子,开发者可以了解如何在Struts2的框架下有效地利用DWR进行Ajax通信,以...
- Struts2的Action类不直接依赖Servlet API,而是通过Struts2的内部机制间接访问请求和响应,这样降低了Action类与Web容器的耦合度,增加了代码的可移植性。 4. **测试**: - 在Struts1中,为了测试Action类,...
Struts1的Action需要继承抽象基类,而Struts2的Action可以实现Action接口或其他接口,甚至无需接口,任何带有execute方法的POJO都可作为Action。Struts1的Action采用单例模式,需要确保线程安全,而在Struts2中,每...
Struts2的核心组件包括:`ActionContextCleanUp`、`FilterDispatcher`、`ActionMapper`、`ActionProxy`、`ActionInvocation`以及相关的配置机制。本文将深入探讨这些核心组件的工作原理,并通过对Struts2请求处理...
Struts2的Action可以通过`ActionContext`来间接获取`request`、`response`和`session`。`ActionContext`是Struts2的一个核心类,它提供了当前执行上下文的信息,包括了request、response和session等。通过`...
2. **配置Struts2**:在`src`目录下创建`struts.xml`文件,这是Struts2的核心配置文件,用于定义Action、拦截器和结果视图。同时,需要在`web.xml`中配置Struts2的过滤器,以便在服务器启动时拦截并处理请求。 3. *...
- Struts2的Action可以是任何实现了特定接口的Java对象(POJO),不需要继承特定的基类。 - Action可以通过拦截器(Interceptors)来扩展功能,而不仅仅是通过继承。 - Struts2提供了强大的依赖注入机制,使得...
Struts2通过配置文件(struts.xml)来定义这些映射关系,使得请求能够正确路由。 其次,Spring框架提供了全面的依赖注入(DI)和面向切面编程(AOP)能力。在本例中,Spring用于管理Struts2中的Action实例,以及与...
- `struts.xml`是Struts2的核心配置文件,用于定义Action、结果类型、拦截器等。 - 引用Struts标签库:`<%@taglib prefix="s" uri="/struts-tags"%>`使得在JSP页面中可以使用Struts2提供的标签。 - Bean配置:...