Struts2

Struts2传值有几种方式:

1)URL parameter

例如配置代码:

        <action name="login_*" class="com.my.action.LoginAction" method="{1}">
            <result type="redirectAction" name="success">main?userName=${userName}&amp;password=${password}</result>
            <result type="redirect" name="false">login</result>
            <result name="input">/pages/Login.jsp</result>
        </action>


其中:

main?userName=${userName}&amp;password=${password}

这一句是当调用Action SUCCESS时会把原Action中的username和password两个属性以url parameter形式传给main action

当然,上面main action也可以这样写:

            <result name="success" type="redirectAction">
                <param name="actionName">main</param>
                <param name="userName">${userName}</param>
                <param name="password">${password}</param>
            </result>

2)request的attribute传值:

例如,可以在一个action中使用attribute传值:

            HttpServletRequest request = ServletActionContext.getRequest();
            request.setAttribute("userName", getUserName());

当然,先要import page:

import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.ServletActionContext;

ServletActionContext有好些方法,可以得到pageContext、request、session、application等对象来使用。


在Struts2 Action中需要调用Appcalition和Session,需要用到这个引用:

import com.opensymphony.xwork2.ActionContext;

调用方法如:

        ActionContext.getContext().getSession().put("username", getUsername());
        ActionContext.getContext().getApplication().put("username", getUsername());

如果需要在Action中调用request、response、pageContext,需要引用:

import org.apache.struts2.ServletActionContext;

调用方法:

ServletActionContext.getPageContext() ...
ServletActionContext.getRequest() ...
ServletActionContext.getResponse() ...
原文地址:https://www.cnblogs.com/HD/p/3645550.html