传递Struts2中的值

时间:2015-02-10 18:02:07

标签: java jsp struts2 action

我有一个signup.jsp页面,新用户输入了他的电子邮件ID。此页面的片段如下所示:

<s:form action="signupprocess">
        <s:textfield label="E-Mail" key="userid"></s:textfield>
        <s:password label="Password" key="password" cssStyle="margin-top:5px;"></s:password>
        <s:password label="Retype Passowrd" key="repass" cssStyle="margin-top:5px;"></s:password>
        <s:submit cssStyle="margin-top:5px;" />
        </s:form>

现在,在完成所有后端处理,即将用户的电子邮件和密码添加到数据库之后,用户被定向到“user.jsp”,在那里他必须填写个人详细信息。此页面如下所示:

<s:form action="user_details">
                    <s:textfield label="First Name" key="firstname"></s:textfield>
                    <s:textfield label="Last Name" key="lastname" cssStyle="margin-top:5px;"></s:textfield>
                    <s:label label="Adress" cssStyle="margin-top:5px;"></s:label>
                    <s:textfield label="Line1" key="addr_1" cssStyle="margin-top:5px;"></s:textfield>
                    <s:textfield label="Line2" key="addr_2" cssStyle="margin-top:5px;"></s:textfield>
                    <s:textfield label="Line3" key="addr_3" cssStyle="margin-top:5px;"></s:textfield>
                    <s:textfield label="City" key="city" cssStyle="margin-top:5px;"></s:textfield>
                    <s:textfield label="State" key="state" cssStyle="margin-top:5px;"></s:textfield>
                    <s:textfield label="Mobile" key="mobile" cssStyle="margin-top:5px;"></s:textfield>
                    <s:checkboxlist list="areas" name="userareas" label="Areas of Interest" cssStyle="margin-top:5px;"></s:checkboxlist>
                    <s:submit cssStyle="margin-top:10px;" />
                    </s:form>

现在在这个jsp的动作类中,我希望能够访问特定用户的电子邮件ID,以便仅在该用户的行中的数据库中创建条目。如何从user.jsp的action类中的signup.jsp页面访问userid的值。

如果需要,我可以提供任何进一步的信息。

1 个答案:

答案 0 :(得分:0)

我相信你已经将signup.jsp中的值作为Action类中的实例变量捕获,如下所示

public class SignupAction implements SessionAware{

   private String userid;
   // getters and setters for user id

   // do not create a getter for this
   private Map sessionData;

   public void setSession(Map sessionAttributes){

       this.sessionData = sessionAttributes;
   }

   public String execute(){

    sessionData.put("email",userid);
    // forward to user.jsp
   }

}

在下一个处理来自user.jsp的表单提交的动作类

public class UserAction implements SessionAware{

       // do not create a getter for this
       private Map sessionData;

       public void setSession(Map sessionAttributes){

           this.sessionData = sessionAttributes;
       }

       public String execute(){

          if(sessionData.containsKey("email")){
            String email = (String)sessionData.get("email");
            // do what you want with email
          }

       }

    }

有关详细信息,您可以看到此tutorial