Hi Gunduz,

At first place having to much session information using session.setAttribute
will make the middleware to consume lot of memory. And, In an application
where there will be more users who could be online at the same point of
time. It is design constraint not to put lot of information in session.

So, This can be done only by passing parameters to the page. But, I couldn't
understand (came across) how to pass parameters to a jsp from Action. If you
came across anything about how to pass parameters to a jsp page let me know.

Thanks you very much,
Siva


-----Original Message-----
From: Gunduz Can Topal [mailto:[EMAIL PROTECTED] 
Sent: Monday, February 13, 2006 6:42 PM
To: 'Struts Users Mailing List'
Subject: RE: Passing Parameters to ActionForward from Action

I am new to struts, there might be better ways to make this work.

You can maintain state information with session registery or http
parameters..

A working example:

----------------struts-config.xml
---------------------------------------

<form-beans>
        <form-bean name="loginForm" type="com.trend.forms.loginForm"/>  
</form-beans>

<action path="/login"
                input="/chatwalk.jsp"                   
                type="com.trend.actions.loginAction"
                name="loginForm"                                 
                scope="request"
                validate="true">
                <forward name="exception" path="/exception.jsp" />
                <forward name="success" path="/myChatwalk.jsp"/>
                <forward name="failure"
path="/chatwalk.jsp?auth=invalid&amp;nav=main"/>

</action>

-----------------loginAction.java -------------------------------------

public final class loginAction extends Action {

    public ActionForward execute(ActionMapping mapping,
                                 ActionForm form,
                                 HttpServletRequest request,
                                 HttpServletResponse response)
        throws Exception {
        
        CWUtil util = new CWUtil();
      CWDAO service = new CWDAO();
        HttpSession session = request.getSession();
        String auth = null;
        ActionForward ret = null;
        userBean user = new userBean();         
      loginForm loginForm = (loginForm) form;
      loginBean login = new loginBean();
      BeanUtils.copyProperties( login, loginForm );
        
      try{
        auth = service.login(login);
                if(!auth.startsWith("Ex")){
                        user = util.parseLogin(auth);
                        session.setAttribute("user",user);
                        ret = mapping.findForward("success");
                }else{
                        ret = mapping.findForward("failure");
                } 
       }catch(Exception e){
                System.out.println("exception at login action " +
e.getMessage());
                ret = mapping.findForward("exception");
        }
        return ret;
    }
}

---------------------------- loginForm.java
--------------------------------

package com.trend.forms;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;


public class loginForm extends ActionForm {
        
        String username,password;

        public String getPassword() {
                return password;
        }

        public void setPassword(String password) {
                this.password = password;
        }

        public String getUsername() {
                return username;
        }

        public void setUsername(String username) {
                this.username = username;
        }
        
    public ActionErrors validate( ActionMapping mapping,
HttpServletRequest request ) {
        ActionErrors errors = new ActionErrors();
        HttpSession session = request.getSession();
        if ( getUsername() == null || getUsername().trim().length() == 0
) {
            errors.add("username",new
ActionMessage("errors.required","username"));
            session.setAttribute("loginError","true");
        }if ( getPassword() == null || getPassword().trim().length() ==
0 ) {
            errors.add("password",new
ActionMessage("errors.required","password"));
            session.setAttribute("loginError","true");
        }
                
        return errors;
    }
}

-----------------------------------loginBean.java-----------------------
----

package com.trend.beans;

public class loginBean {
        
        String username,password;

        public String getPassword() {
                return password;
        }

        public void setPassword(String password) {
                this.password = password;
        }

        public String getUsername() {
                return username;
        }

        public void setUsername(String username) {
                this.username = username;
        }

}



-----Original Message-----
From: siva [mailto:[EMAIL PROTECTED] 
Sent: Monday, February 13, 2006 12:06 PM
To: user@struts.apache.org
Subject: Passing Parameters to ActionForward from Action

Hi,

 

I want to know how to pass parameters from an Action to corresponding
ActionForward.

Basically, I am having only the jsp name in forward in
struts-config.xml.
But, when action is processed, I want to send some parameters to the
corresponding actionforward. 

 

Can some be help me in explaining how it can be achieved. 

 

Thanks,

Siva






---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to