本文转自:http://javaloverlover.iteye.com/blog/1451900
struts2可由action,拦截器添加PreResultListener监听器,这个监听器可以在转入实际物理视图前回调该监听器的beforeResult()方法。
action代码:
- package com.randy.com;
- import java.util.Date;
- import com.opensymphony.xwork2.ActionContext;
- import com.opensymphony.xwork2.ActionInvocation;
- import com.opensymphony.xwork2.ActionSupport;
- import com.opensymphony.xwork2.interceptor.PreResultListener;
- public class LoginAction extends ActionSupport {
- private static final long serialVersionUID = -2503680075934354752L;
- private String username;
- private String password;
- public String execute() {
- ActionInvocation invitation = ActionContext.getContext().getActionInvocation();
- invitation.addPreResultListener(new PreResultListener() {
- @Override
- public void beforeResult(ActionInvocation invitation, String resultCode) {
- System.out.println(resultCode);
- invitation.getInvocationContext().put("extra", new Date() + resultCode+"转入");
- }
- });
- if ("randy".equals(getUsername()) && "jin".equals(getPassword())) {
- ActionContext.getContext().getSession().put("user", username);
- return SUCCESS;
- }
- return LOGIN;
- }
- public String getUsername() {
- return username;
- }
- public void setUsername(String username) {
- this.username = username;
- }
- public String getPassword() {
- return password;
- }
- public void setPassword(String password) {
- this.password = password;
- }
- }
jsp代码:
- <%@ page language="java" contentType="text/html" pageEncoding="UTF-8"%>
- <%@ taglib uri="/struts-tags" prefix="s" %>
- <!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=ISO-8859-1">
- <title><s:text name="succPage"/></title>
- </head>
- <body>
- <s:text name="succTip">
- <s:param>${sessionScope.user}</s:param>
- </s:text>
- <s:property value="username"/>
- <s:property value="extra"/>
- <a href="aa.action">ffff</a>
- </body>
- </html>
交流群:132607763 若满了,请加:251207741