【ssh学习笔记】struts2的action与Spring

//由struts-spring-plugin管理,不需要加@Resource,或在<span style="font-family: Arial; font-size: 14px; line-height: 26px;">applicationContext.xml</span>中也不需要配置该bean
//需要注入的对象也不需要加@Resource
public class JsonAction extends ActionSupport {

	/**
	 * 
	 */
	private static final long serialVersionUID = -9040282050464969108L;
	
	private String isSuccess = "success";

	private List<Map<String, Object>> users = new ArrayList<Map<String, Object>>();

	private UserManager userManager;
	


	@JSON(name="result")
	public String getIsSuccess() {
		return isSuccess;
	}


	public void setIsSuccess(String isSuccess) {
		this.isSuccess = isSuccess;
	}


	public List<Map<String, Object>> getUsers() {
		return users;
	}


	public void setUsers(List<Map<String, Object>> users) {
		this.users = users;
	}

	@JSON(serialize=false)
	public UserManager getUserManager() {
		return userManager;
	}
<span style="white-space:pre">	</span>
<span style="white-space:pre">	</span>//@Resource
	public void setUserManager(UserManager userManager) {
		this.userManager = userManager;
	}

	@Override
	public String execute() throws Exception {
		
		List<User> userList = userManager.listUsers();
		
		for(User user : userList)
		{
			Map<String, Object> jsonMap = new HashMap<String, Object>();
			jsonMap.put("id", user.getId());
			jsonMap.put("username", user.getUsername());
			jsonMap.put("password", user.getPassword());
			
			users.add(jsonMap);
		}
		
		return SUCCESS;
	}
	
}


在struts.xml中,action的class属性指向具体的class时,action是由struts-spring-plugin来管理,即不需要在action中写上@Resource,@Component等annotaion


相反,如果将action完全交由spring来管理,则class属性设置为action的bean id,

	<package name="json" extends="json-default" namespace="/">
		<action name="jsonAction" class="<span style="font-family: Arial, Helvetica, sans-serif;">jsonAction</span><span style="font-family: Arial, Helvetica, sans-serif;">"  method="execute"></span>
			<result type="json" />
		</action>
	</package>

所以需要在action中添加annotation,或者在:applicationContext.xml添加bean

//完全由spring管理,需要加@Resource,或在<span style="font-family: Arial; font-size: 14px; line-height: 26px;">applicationContext.xml</span>中配置该bean
//需要注入的对象需要加@Resource
@Component
public class JsonAction extends ActionSupport {

	/**
	 * 
	 */
	private static final long serialVersionUID = -9040282050464969108L;
	
	private String isSuccess = "success";

	private List<Map<String, Object>> users = new ArrayList<Map<String, Object>>();
	private UserManager userManager;
	


	@JSON(name="result")
	public String getIsSuccess() {
		return isSuccess;
	}


	public void setIsSuccess(String isSuccess) {
		this.isSuccess = isSuccess;
	}


	public List<Map<String, Object>> getUsers() {
		return users;
	}


	public void setUsers(List<Map<String, Object>> users) {
		this.users = users;
	}

	@JSON(serialize=false)
     @Resource
	public UserManager getUserManager() {
		return userManager;
	}
<span>	</span>
<span>	</span>//@Resource
	public void setUserManager(UserManager userManager) {
		this.userManager = userManager;
	}

	@Override
	public String execute() throws Exception {
		
		List<User> userList = userManager.listUsers();
		
		for(User user : userList)
		{
			Map<String, Object> jsonMap = new HashMap<String, Object>();
			jsonMap.put("id", user.getId());
			jsonMap.put("username", user.getUsername());
			jsonMap.put("password", user.getPassword());
			
			users.add(jsonMap);
		}
		
		return SUCCESS;
	}
	
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值