将会话ID传递给struts 2中的url jsp页面

时间:2013-05-03 02:41:02

标签: java struts2 struts struts-config

我有一个登录页面和欢迎页面

这里是struts.xml文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>

<constant name="struts.devMode" value="true" /> 
<constant name="struts.enable.DynamicMethodInvocation" value="true"/>
<constant name="struts.objectFactory" value="org.apache.struts2.spring.StrutsSpringObjectFactory" />  

<package name="Authentiate" extends="struts-default">

<global-results>

<result name="error">/error.jsp</result>

</global-results>

<action name="loginAuthenticate*" class="com.authenticate.actions.LoginAuthenticate" method="{1}">

<result name="success">/welcome.jsp</result>
<result name="redirectRegister" type="redirect">/registration.jsp</result>

</action>

</package>

</struts>

当我从welcome.jsp中的操作类返回成功时,如何将会话ID附加到struts.xml,如下所示

http://myopenidhost.com/openid/welcome.jsp?sessionid=swe234323xghf346rrg34r4

3 个答案:

答案 0 :(得分:0)

在这种情况下,当您在javascript函数中提交页面使用时:

您将在页面中声明隐藏字段,并将您的操作中的jsessionId指定给此隐藏字段。

function abc(){

  var jsessionId=document.<hiddenFieldName>.value;
  document.action="welcomePage.jsp?sessionId="+jsessionId;
  document.submit();

}

我不知道你想要实现什么,但是你是一种Get请求,你可以在你的URL中看到这个生成的id

如果我没有错,这是在URL中追加值的方法。 如果这有帮助,请告诉我......如果不是我需要准确的标准你想要达到的目标。

答案 1 :(得分:0)

您应该配置返回参数的结果

<result>
  <param name="location">/welcome.jsp</param>
  <param name="sessionId">${sessionId}</param>
</result>

在操作中,您应该在返回结果

之前初始化参数
public class LoginAuthenticate extends ActionSupport {

  private String sessionId;

  public String getSessionId() {
    return sessionId;
  }

  public String execute() {

    //action code ...

    sessionId =  ServletActionContext.getRequest().getSession().getId();
    return SUCCESS;
  }
}

您可以详细了解结果here和动态结果here

答案 2 :(得分:-2)

如果您尝试将登录详细信息放入会话中,请使用SessionAware界面,如果没有,请告诉我..