Java 如何在Struts 2中将Action类变量值传递给另一个Action类
如何将Java 如何在Struts 2中将Action类变量值传递给另一个Action类,java,session,parameters,struts2,Java,Session,Parameters,Struts2,如何将Action类变量值传递到Struts 2中的另一个Action类中 我想在另一个操作类中使用查询变量中检索到的值。尝试以下操作:在第一个操作中使用结果类型 并将第二个操作的名称作为值添加到第一个操作的结果中 链接指向struts2的官方页面以获取链结果操作可以通过不同的方式相互通信,它们运行在不同的线程中,并且不共享操作上下文。最常用的方法是通过请求或URL传递参数,XWork转换器将在OGNL的帮助下将其转换为操作属性 但是我认为登录操作的目的是通过用户的凭据(电子邮件、用户名、密码)
Action
类变量值传递到Struts 2中的另一个Action
类中
我想在另一个操作类中使用查询变量中检索到的值。尝试以下操作:在第一个操作中使用结果类型 并将第二个操作的名称作为值添加到第一个操作的结果中
链接指向struts2的官方页面以获取链结果操作可以通过不同的方式相互通信,它们运行在不同的线程中,并且不共享操作上下文。最常用的方法是通过请求或URL传递参数,XWork转换器将在OGNL的帮助下将其转换为操作属性 但是我认为
登录操作的目的是通过用户的凭据(电子邮件、用户名、密码)
对用户进行身份验证,并将此信息保存在会话映射中。这是一个可以在操作之间共享的公共资源。要使会话映射可用于操作和其他操作,它们应该实现SessionAware
。它将帮助Struts将会话映射注入action属性。如果您希望在应用程序的许多操作中使用会话,那么为了不在每个操作中实现此接口,您可以创建一个基本操作
public class BaseAction extends ActionSupport implements SessionAware {
private Map<String, Object> session;
public setSession(Map<String, Object> session){
this.session = session;
}
public Map<String, Object> getSession(){
return session;
}
}
现在,用户在会话中,您可以从其他操作或JSP获取会话,并从会话
映射获取用户
对象
public class InboxAction extends BaseAction {
@Override
public String execute() throws Exception {
User user = (User) getSession().get("user");
return SUCCESS;
}
}
如果要将所有值发布到另一个操作,请使用“链”,否则请使用重定向操作并指定参数。我希望在Struts2中使用该选项,用例是什么?你是如何将这两个动作联系起来的?@Dave Newton我不知道用例。我在LoginAction类中声明了三个参数,并通过jsp页面输入了这三个参数的值。现在我想在ToInboxAction类中检索三个值中的一个。如果需要,我也可以发布我的代码。@用户为什么不将第一个操作的结果传递给他们?为什么直接在另一个操作中实例化一个操作?这不是一个好主意有多种原因。如何将其放入另一个action类?@user或可能是更好的答案?getUserService()方法不起作用。我们需要进口什么包裹吗?。
public class InboxAction extends BaseAction {
@Override
public String execute() throws Exception {
User user = (User) getSession().get("user");
return SUCCESS;
}
}