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

How to display error message

 
Greenhorn
Posts: 25
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Report post to moderator
Hi,

In struts1 how to check whether the entered email id is already exists in database or not. If it already exists we have to display an error message saying the the email id already exists. Can anyone help.


Thanks
parthiban

 
Ranch Hand
Posts: 45
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Report post to moderator
You should make a SELECT query into the database to check if the email already exists. Struts doesn't involve anything here.
 
Bartender
Posts: 9626
16
Mac OS X Linux Windows
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Report post to moderator
Struts has a tag called errors. Put that on your JSP tag where you want the error displayed.
In your Action, you need to invoke getErrors to get the ActionMessages collection, add ActionMessage instances for each error, then invoke saveErrors on the action to get the errors to your JSP.
 
parthiban thrangaraju
Greenhorn
Posts: 25
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Report post to moderator
In struts1 how to check whether the entered email id is already exists in database or not. If it already exists we have to display an error message saying that the email id already exists. Can anyone help. Here i had attached my code.

jsp code
-----------

<!DOCTYPE html>
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>

<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %>
<%--<%@taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles" %>--%>
<%--<%@taglib uri="/struts-tags" prefix="s" %>--%>
<html lang="en">

<head>
<title><bean:message key="newuser.title1"/></title>
<meta charset="utf-8">
<link rel="stylesheet" href="css/reset.css" type="text/css" media="all">
<link rel="stylesheet" href="css/layout.css" type="text/css" media="all">
<link rel="stylesheet" href="css/style.css" type="text/css" media="all">
<!--[if lt IE 7]>
<link rel="stylesheet" href="css/ie/ie6.css" type="text/css" media="screen">
<script type="text/javascript" src="js/ie_png.js"></script>
<script type="text/javascript">
ie_png.fix('.png, .logo img, .nav-box ul li, .list1 li');
</script>
<![endif]-->
<!--[if lt IE 9]>
<script type="text/javascript" src="js/html5.js"></script>
<![endif]-->
</head>

<body id="page7">
<table id="login-form">
<html:form action="/NewUserForm" styleId="login-form">
<fieldset>
<div class="field">
<tr>
<td>
<bean:message key="newuser.title2"/>
</td>
<td>
<html:text property="firstname"/>
</td>
<td>
<html:errors property="firstname"/>
</td>
</tr>
</div>
<div class="field">
<tr>
<td>
<bean:message key="newuser.title3"/>
</td>
<td>
<html:text property="lastname"/>
</td>
<td>
<html:errors property="lastname"/>
</td>
</tr>
</div>
<div class="field">
<tr>
<td>
<bean:message key="newuser.title4"/>
</td>
<td>
<html:radio property="gender" value="Male">Male</html:radio>
<html:radio property="gender" value="Female">Female</html:radio>
</td>
<td>
<html:errors property="gender"/>
</td>
</tr>
</div>
<div class="field">
<tr>
<td>
<bean:message key="newuser.title5"/>
</td>
<td>
<html:text property="dateofbirth"/>
</td>
<td>
<html:errors property="dateofbirth"/>
</td>
</tr>
</div>
<div class="field">
<tr>
<td>
<bean:message key="newuser.title6"/>
</td>
<td>
<html:text property="emailid"/>
</td>
<td>
<html:errors property="emailid"/>
</td>
</tr>
</div>
<div>
<tr>
<td>
<bean:message key="common.title1"/>
</td>
<td>
<html:text property="username"/>
</td>
<td>
<html:errors property="username"/>
</td>
</tr>
</div>
<div>
<tr>
<td>
<bean:message key="common.title2"/>
</td>
<td>
<html:password property="password"/>
</td>
<td>
<html:errors property="password"/>
</td>
</tr>
</div>
<div>
<tr>
<td>
<bean:message key="newuser.title7"/>
</td>
<td>
<html:password property="confirmpassword"/>
</td>
<td>
<html:errors property="confirmpassword"/>
</td>
</tr>
</div>
<div class="wrapper">
<tr>
<td colspan="3">
<html:submit value="REGISTER" styleId="submit"/>
</td>
</tr>
</div>
</fieldset>
</html:form>
</table>
<!-- footer -->
<footer>
<div class="container">
<a href=""><bean:message key="common.title31"/></a> <bean:message key="common.title32"/> <a href=""><bean:message key="common.title33"/></a>
</div>
</footer>
</body>
</html>

Action Class
---------------

package classes.newuser;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionError;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionFormBean;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;
import org.apache.struts.action.ActionRedirect;
import org.apache.struts.action.ActionServlet;
import org.apache.struts.validator.FieldChecks;
import org.apache.struts.validator.ValidatorPlugIn;
import org.apache.struts.validator.validwhen.ValidWhen;


public class NewUserAction extends org.apache.struts.action.Action {


private static final String SUCCESS = "success";


public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {

NewUserForm nsf=(NewUserForm)form;

String firstname=nsf.getFirstname();
String lastname=nsf.getLastname();
String gender=nsf.getGender();
String dateofbirth=nsf.getDateofbirth();
String emailid=nsf.getEmailid();
String username=nsf.getUsername();
String password=nsf.getPassword();
String confirmpassword=nsf.getConfirmpassword();

try{

String url="jdbc:mysql://localhost:3306/nemogroups";
Class.forName("com.mysql.jdbc.Driver");
Connection con= DriverManager.getConnection(url, "root" ,"root" );
Statement st=con.createStatement();
String insert="insert into registration(firstname,lastname,gender,dateofbirth,emailid,username,password,confirmpassword) values('"+firstname+"','"+lastname+"','"+gender+"','"+dateofbirth+"','"+emailid+"','"+username+"','"+password+"','"+confirmpassword+"')";
st.executeUpdate(insert);
}
catch (Exception e) {
// TODO: handle exception
System.out.println(e);
}
return mapping.findForward(SUCCESS);
}

}

Action Form
---------------


package classes.newuser;

import javax.servlet.http.HttpServletRequest;

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


public class NewUserForm extends org.apache.struts.validator.ValidatorForm {


private static final long serialVersionUID = 1L;
private String firstname=null;
private String lastname=null;
private String gender=null;
private String dateofbirth=null;
private String emailid=null;
private String username=null;
private String password=null;
private String confirmpassword=null;
private String action="register";


public String getAction() {
return action;
}

public void setAction(String action) {
this.action = action;
}

public String getConfirmpassword() {
return confirmpassword;
}

public String getDateofbirth() {
return dateofbirth;
}

public String getEmailid() {
return emailid;
}

public String getFirstname() {
return firstname;
}

public String getGender() {
return gender;
}

public String getLastname() {
return lastname;
}

public String getPassword() {
return password;
}

public String getUsername() {
return username;
}

public void setConfirmpassword(String confirmpassword) {
this.confirmpassword = confirmpassword;
}

public void setDateofbirth(String dateofbirth) {
this.dateofbirth = dateofbirth;
}

public void setEmailid(String emailid) {
this.emailid = emailid;
}

public void setFirstname(String firstname) {
this.firstname = firstname;
}

public void setGender(String gender) {
this.gender = gender;
}

public void setLastname(String lastname) {
this.lastname = lastname;
}

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

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

public void reset(ActionMapping mapping,HttpServletRequest request){

this.firstname=null;
this.lastname=null;
this.gender=null;
this.dateofbirth=null;
this.emailid=null;
this.username=null;
this.password=null;
this.confirmpassword=null;
this.action="register";

}

public ActionErrors validate(ActionMapping mapping,HttpServletRequest request){

ActionErrors errors=new ActionErrors();

return errors;
}
}

Validation.xml
-----------------

<form name="NewUserForm">
<field property="firstname" depends="required,mask">
<msg name="mask" key="NewUserForm.firstname.mask"/>
<arg key="NewUserForm.firstname"/>
<var>
<var-name>mask</var-name>
<var-value>^[a-zA-Z]*$</var-value>
</var>
</field>
<field property="lastname" depends="required,mask">
<msg name="mask" key="NewUserForm.lastname.mask"/>
<arg key="NewUserForm.lastname"/>
<var>
<var-name>mask</var-name>
<var-value>^[a-zA-Z]*$</var-value>
</var>
</field>
<field property="gender" depends="required">
<msg name="required" key="NewUserForm.gender"/>
</field>
<field property="dateofbirth" depends="required,date">
<msg name="date" key="NewUserForm.dateofbirth.date"/>
<arg key="NewUserForm.dateofbirth"/>

<var>
<var-name>datePattern</var-name>
<var-value>dd-MM-yy</var-value>
</var>
</field>
<field property="emailid" depends="required,email">
<msg name="email" key="NewUserForm.emailid.email"/>
<arg key="NewUserForm.emailid"/>
</field>
<field property="username" depends="required">
<arg key="NewUserForm.username"/>
</field>
<field property="password" depends="required,mask,minlength">
<msg name="mask" key="NewUserForm.password.mask"/>
<arg key="NewUserForm.password"/>
<var>
<var-name>mask</var-name>
<var-value>^[0-9a-zA-Z]*$</var-value>
</var>
<arg1 key="${var:minlength}" resource="false"/>
<var>
<var-name>minlength</var-name>
<var-value>6</var-value>
</var>
</field>
<field property="confirmpassword" depends="validwhen">
<!-- <arg key="NewUserForm.confirmpassword"/> -->
<msg name="validwhen" key="NewUserForm.confirmpassword.validwhen"/>
<var>
<var-name>test</var-name>
<var-value>(*this* == password)</var-value>
</var>
</field>

</form>



Thanks
parthiban
 
Joe Ess
Bartender
Posts: 9626
16
Mac OS X Linux Windows
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Report post to moderator
Posting source code is nice, but we aren't going to fix it for you. Try implementing what Cole and I have recommended and if you have specific questions, we can help you out.
Check our FAQ, How To Ask Questions on JavaRanch. The better question you ask, the more help we can be.
 
parthiban thrangaraju
Greenhorn
Posts: 25
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Report post to moderator
Hi Joe Ess,

Sorry i wrongly posted the code. I forget to change the text. From this code what problem i am facing is, the datas what i have entered is not updated in database, but after pressing register button the page is forwarding to success page. Till day before yesterday the datas are updated in database but today i executed the code its not working. I don't know where the problem. Can you help me.

Thanks in advance
parthiban.t
 
parthiban thrangaraju
Greenhorn
Posts: 25
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Report post to moderator
I have solved it
 
parthiban thrangaraju
Greenhorn
Posts: 25
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Report post to moderator
Hi Joe Ess,

I have validated the email address and the scenario is working but the problem is error message is not displaying "Email Id already exists". I have attached the code. Can youo help me

Jsp page
-----------

<!DOCTYPE html>
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>

<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %>
<html lang="en">
<head>
<title><bean:message key="newuser.title1"/></title>
<meta charset="utf-8">
<link rel="stylesheet" href="css/reset.css" type="text/css" media="all">
<link rel="stylesheet" href="css/layout.css" type="text/css" media="all">
<link rel="stylesheet" href="css/style.css" type="text/css" media="all">
<!--[if lt IE 7]>
<link rel="stylesheet" href="css/ie/ie6.css" type="text/css" media="screen">
</head>

<body id="page7">
<table id="login-form">
<html:form action="/NewUserForm" styleId="login-form">
<fieldset>
<div class="field">
<tr>
<td>
<bean:message key="newuser.title2"/>
</td>
<td>
<html:text property="firstname"/>
</td>
<td>
<html:errors property="firstname"/>
</td>
</tr>

</div>
<div class="field">
<tr>
<td>
<bean:message key="newuser.title3"/>
</td>
<td>
<html:text property="lastname"/>
</td>
<td>
<html:errors property="lastname"/>
</td>
</tr>
</div>
<div class="field">
<tr>
<td>
<bean:message key="newuser.title4"/>
</td>
<td>
<html:radio property="gender" value="Male">Male</html:radio>
<html:radio property="gender" value="Female">Female</html:radio>
</td>
<td>
<html:errors property="gender"/>
</td>
</tr>
</div>
<div class="field">
<tr>
<td>
<bean:message key="newuser.title5"/>
</td>
<td>
<html:text property="dateofbirth"/>
</td>
<td>
<html:errors property="dateofbirth"/>
</td>
</tr>
</div>
<div class="field">
<tr>
<td>
<bean:message key="newuser.title6"/><sup>*</sup>
</td>
<td>
<html:text property="emailid"/>
</td>
<td>
<html:errors property="emailid"/>
</td>
</tr>
</div>
<div>
<tr>
<td>
<bean:message key="common.title1"/>
</td>
<td>
<html:text property="username"/>
</td>
<td>
<html:errors property="username"/>
</td>
</tr>
</div>
<div>
<tr>
<td>
<bean:message key="common.title2"/>
</td>
<td>
<html:password property="password"/>
</td>
<td>
<html:errors property="password"/>
</td>
</tr>

</div>
<div>
<tr>
<td>
<bean:message key="newuser.title7"/>
</td>
<td>
<html:password property="confirmpassword"/>
</td>
<td>
<html:errors property="confirmpassword"/>
</td>
</tr>
</div>
<div class="wrapper">
<tr>
<td colspan="3">
<html:submit value="REGISTER" styleId="submit"/>
</td>
</tr>
</div>
</fieldset>
</html:form>
</table>

</body>
</html>

Action Form
--------------


package classes.newuser;

import javax.servlet.http.HttpServletRequest;

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 NewUserForm extends org.apache.struts.validator.ValidatorForm {

private static final long serialVersionUID = 1L;
private String firstname=null;
private String lastname=null;
private String gender=null;
private String dateofbirth=null;
private String emailid=null;
private String username=null;
private String password=null;
private String confirmpassword=null;

public String getConfirmpassword() {
return confirmpassword;
}

public String getDateofbirth() {
return dateofbirth;
}

public String getEmailid() {
return emailid;
}

public String getFirstname() {
return firstname;
}

public String getGender() {
return gender;
}

public String getLastname() {
return lastname;
}

public String getPassword() {
return password;
}

public String getUsername() {
return username;
}

public void setConfirmpassword(String confirmpassword) {
this.confirmpassword = confirmpassword;
}

public void setDateofbirth(String dateofbirth) {
this.dateofbirth = dateofbirth;
}

public void setEmailid(String emailid) {
this.emailid = emailid;
}

public void setFirstname(String firstname) {
this.firstname = firstname;
}

public void setGender(String gender) {
this.gender = gender;
}

public void setLastname(String lastname) {
this.lastname = lastname;
}

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

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

public void reset(ActionMapping mapping,HttpServletRequest request){

this.firstname=null;
this.lastname=null;
this.gender=null;
this.dateofbirth=null;
this.emailid=null;
this.username=null;
this.password=null;
this.confirmpassword=null;

}

public ActionErrors validate(ActionMapping mapping,HttpServletRequest request){

ActionErrors errors=new ActionErrors();

NewUserAction act= new NewUserAction();
ActionForm form=null;

//Boolean flag= act.

errors.add("emailid", new ActionMessage("NewUserForm.emailid.alreadyexists"));

return errors;
}
}


Action Class
---------------


package classes.newuser;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionError;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionFormBean;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;
import org.apache.struts.action.ActionRedirect;
import org.apache.struts.action.ActionServlet;
import org.apache.struts.validator.FieldChecks;
import org.apache.struts.validator.ValidatorPlugIn;
import org.apache.struts.validator.validwhen.ValidWhen;

public class NewUserAction extends org.apache.struts.action.Action {


private static final String SUCCESS = "success";


public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {

NewUserForm nsf=(NewUserForm)form;



String firstname=nsf.getFirstname();
String lastname=nsf.getLastname();
String gender=nsf.getGender();
String dateofbirth=nsf.getDateofbirth();
String emailid=nsf.getEmailid();

String username=nsf.getUsername();
String password=nsf.getPassword();
String confirmpassword=nsf.getConfirmpassword();

try{


String url="jdbc:mysql://localhost:3306/nemogroups";
Class.forName("com.mysql.jdbc.Driver");
Connection con= DriverManager.getConnection(url, "root" ,"root" );
Statement st=con.createStatement();

//String email=request.getParameter("emailid").toString();
System.out.println(emailid);
ResultSet rs=st.executeQuery("select emailid from registration where emailid='"+emailid+"'");
int count=0;
while(rs.next()){

String email=rs.getString("emailid");
System.out.println("email=============="+email);
count++;
}

//String ei=rs.getString(1);
if(count>0){

//return mapping.findForward(errors);


}

else{

String insert="insert into registration(firstname,lastname,gender,dateofbirth,emailid,username,password,confirmpassword) values('"+firstname+"','"+lastname+"','"+gender+"','"+dateofbirth+"','"+emailid+"','"+username+"','"+password+"','"+confirmpassword+"')";
st.executeUpdate(insert);

}

}
catch (Exception e) {
// TODO: handle exception
System.out.println(e);
}
return mapping.findForward(SUCCESS);
}



}


thanks in advance
 
Joe Ess
Bartender
Posts: 9626
16
Mac OS X Linux Windows
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Report post to moderator
Please do not post the same question more than once. It causes confusion and duplication of effort as the community tries to help everyone.

UseOneThreadPerQuestion
 
With a little knowledge, a cast iron skillet is non-stick and lasts a lifetime.
    Bookmark Topic Watch Topic
  • New Topic