Two Laptop Bag*
The moose likes Struts and the fly likes blank page - Action is not called Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Frameworks » Struts
Bookmark "blank page - Action is not called" Watch "blank page - Action is not called" New topic
Author

blank page - Action is not called

selvi family
Ranch Hand

Joined: Nov 26, 2004
Posts: 39
My example struts application is not working...after entering the username and usercode and clicking on submit I got the blank page..some one help me..

CODE:::

This is my JSP - LoginView.jsp
<%@ taglib uri="/WEB-INF/taglib/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/taglib/struts-bean.tld" prefix="bean" %>

<html>
<head>
<link rel="stylesheet" href="./jsp/display/ie.css"/>
<title>>My First Struts Program</title>
</head>
<body>
<h4>My First Struts Program</h4>
<fieldset>
<legend class="body">Login Form</legend>
<html:errors />
<html:form action="login.do">
<table width="100%">
<tr>
<td class="body">User Name</td>
<td class="body"><html:text property="username" size="14" styleClass="body"/></td>
</tr>
<tr>
<td class="body">User Code</td>
<td class="body"><html assword property="usercode" size="14" value="" styleClass="body"/></td>
<tr>
<tr>
<td><html:submit property="valid" value="Validate" styleClass="body"/></td>
</tr>

</table>
</html:form>
</fieldset>

</body>
</html>

This is my FormBean - LoginForm.java
package myTest.struts;

import org.apache.struts.action.ActionForm;


public class LoginForm extends ActionForm
{
private String userName;
private int userCode;

public void setUsername(String uname)
{
userName=uname;
}
public String getUsername()
{
return userName;
}

public void setUsercode(int ucode)
{
userCode=ucode;
}
public int getUsercode()
{
return userCode;
}
}
This is my Action - LoginAction.java
package myTest.struts;

import javax.servlet.*;
import javax.servlet.http.*;
import org.apache.struts.action.*;
import myTest.struts.LoginBean;

public class LoginAction extends Action
{

public LoginAction()
{

}

public ActionForward perform(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) throws java.io.IOException, javax.servlet.ServletException
{

LoginBean lb = new LoginBean();
request.setAttribute("LoginBean", lb);
lb.setParameters(request);
System.out.println("Inside action");
ActionErrors ae = lb.validate();
request.setAttribute(Action.ERROR_KEY, ae);

if (ae == null || ae.size() == 0)
{
return mapping.findForward("valid");
}
else
{
return mapping.findForward("invalid");
}

}
}
This is validator - LoginBean.java
package myTest.struts;

import javax.servlet.http.*;
import org.apache.struts.action.*;

public class LoginBean
{

String userType, userName ,userCode;

public LoginBean()
{
}

public void setParameters(HttpServletRequest request)
{
userName = request.getParameter("username");
userCode = request.getParameter("usercode");
System.out.println("Inside bean set param");
}

public ActionErrors validate()
{

if (!userName.equals(userCode))
{
ActionErrors ae = new ActionErrors();
ae.add("userName", new ActionError("error.invalid.login"));
return ae;
}

if (userName.equals("admin"))
{
userType = "Adminstrator";
}
else
if (userName.equals("user")) {
userType = "User";
}
else
{
ActionErrors ae = new ActionErrors();
ae.add("userName", new ActionError("error.invalid.login"));
return ae;
}

return null;
}

public String getUserType() {
return userType;
}

public void setUserType(String userType)
{
this.userType = userType;
}
}
Cendy Nguvy
Ranch Hand

Joined: May 25, 2005
Posts: 37
Hi

When using Struts, you have to apply java naming conventions.
If, in your ActionForm, you code :

private String userName ;

in your jsp, you have to code :

<html:text property="userName" ...>

and getter and setter methods in your ActionForm :

public void setUserName(String userName)
{this.userName=userName}

public String getUserName()
{return (userName)}

It's the same thing for userCode.

You can read topic "Struts:No getter method for property name problem" in this forum.

And in Struts, i think "validate" method must be in ActionForm and getParameter in "execute" method in Action.

I hope it helps you.
selvi family
Ranch Hand

Joined: Nov 26, 2004
Posts: 39
hey thanks a lot..

as u said its working now
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: blank page - Action is not called