论坛首页 Java企业应用论坛

我的struts2配置,间接实现零配置

浏览 12679 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-10-11  
所谓间接实现零配置,是指只要做些初始化的配置之后,在以后的开发中基本上不用再对每个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
   发表时间:2007-10-13  
这个似乎有点问题吧,你的前提就是返回的全部是success的forward,这样太简单了点
0 请登录后投票
   发表时间:2007-10-13  
姜太公 写道
这个似乎有点问题吧,你的前提就是返回的全部是success的forward,这样太简单了点

你大概没有看清楚,返回的不是Success,返回的是"custom",并通过BaseAction里的属性target,指向
jsp
0 请登录后投票
   发表时间:2007-10-13  
另外以上代码是经测试通过的,今天加上了事务的控制,自己写了个Interceptor
0 请登录后投票
   发表时间:2007-10-30  
正在学习struts2,请问楼主struts.objectFactory.spring.autoWire这一项是什么意思?谢谢
0 请登录后投票
   发表时间:2007-10-30  
为什么不设置struts.enable.DynamicMethodInvocation = true,这样的话,不需要配置xml了
0 请登录后投票
   发表时间:2007-11-07  
zhyun29 写道
正在学习struts2,请问楼主struts.objectFactory.spring.autoWire这一项是什么意思?谢谢

这是定义struts2的action在注入业务逻辑类的时候使用那种方式匹配spring context中的对象,是基于名字匹配,如果设置成type,则是基于类型匹配
0 请登录后投票
   发表时间:2007-11-07  
kusoft 写道
为什么不设置struts.enable.DynamicMethodInvocation = true,这样的话,不需要配置xml了

如果不配置xml,那拦截器怎么设置?全部用注解?那太繁琐了。
我觉得使用新技术不是为了用新技术而新技术,而是看是不是能提高效率。
0 请登录后投票
   发表时间:2007-11-08  
刚开始学Struts2,谢谢楼主,希望楼主以后多发点好帖
0 请登录后投票
   发表时间:2007-11-12  
colin4k 写道
另外以上代码是经测试通过的,今天加上了事务的控制,自己写了个Interceptor


这个零配置不错,把事务控制的代码也贴上来,学习一下。

web根目录下的index.jsp怎么处理?
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics