1

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

这是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>

当我从动作类返回成功结果时,如何附加sessionid到如下welcome.jspstruts.xml

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

3 回答 3

0

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

您将在页面中声明隐藏字段,并将您的操作中的 jsessionId 分配给该隐藏字段。

function abc(){

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

}

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

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

于 2013-05-03T03:59:22.747 回答
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;
  }
}

您可以阅读更多关于结果配置动态结果的信息。

于 2013-05-03T08:59:57.687 回答
-2

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

于 2013-05-03T03:02:57.717 回答