使用PreResultListener监听器,系统转入实际的物理视图之间被回调。

RegisterAction.java

package org.sadhu.app.action;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.interceptor.PreResultListener;

/*
 * 使用PreResultListener监听器,系统转入实际的物理视图之间被回调。
 * 
 *  */
public class RegistAction extends ActionSupport {
	private String userName;//账号
	private String password;//密码
	private String tip;//提示消息
	public String getUserName()
	{
		return this.userName;
	}
	public void setUserName(String userName)
	{
		this.userName = userName;
	}
	public String getPassword()
	{
		return this.password;
	}
	public void setPassword(String password)
	{
		this.password = password;
	}
	public String getTip()
	{
		return this.tip;
	}
	public void setTip(String tip)
	{
		this.tip = tip;
	}
	public String execute() throws Exception
	{
		ActionInvocation invocation = ActionContext.getContext().getActionInvocation();
		invocation.addPreResultListener(new PreResultListener() {
			
			@Override
			public void beforeResult(ActionInvocation invocation, String resultCode) {
				System.out.println("返回的逻辑视图名字为:"+resultCode);
				//在返回Result之前加入一个额外的数据。
				invocation.getInvocationContext().put("extra",new java.util.Date()
				+"由"+resultCode+"逻辑视图名转入");
			}
		});
		if(getUserName().equals("sadhu") && getPassword().equals("sadhu"))
		{
			ActionContext.getContext().getSession().put("user", getUserName());
			setTip("欢迎,"+getUserName()+",您已经登陆成功!");
			return SUCCESS;
		}
		else
		{
			return ERROR;
		}
	}
}

struts.xml

<action name="login" class="org.sadhu.app.action.RegistAction">
			<result type="dispatcher" name="success">
				<param name="location">welcome.jsp</param>
			</result>
		</action>

welcome.jsp

<%@ page language="java" contentType="text/html; charset=GBK" pageEncoding="GBK"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>登陆成功</title>
</head>
<body>欢迎进入系统!
	<s:property value="userName" />
	<s:property value="tip" />
</body>
</html>


你可能感兴趣的:(使用PreResultListener监听器,系统转入实际的物理视图之间被回调。)