• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Paul Clapham
  • Liutauras Vilda
Sheriffs:
  • paul wheaton
  • Rob Spoor
  • Devaka Cooray
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Tim Moores
Bartenders:
  • Mikalai Zaikin

blank page - Action is not called

 
Ranch Hand
Posts: 39
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
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;
}
}
 
Ranch Hand
Posts: 37
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
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
Posts: 39
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
hey thanks a lot..

as u said its working now
 
reply
    Bookmark Topic Watch Topic
  • New Topic