Здесь я хочу, чтобы, если пользователь пытается зарегистрироваться с кодом, который уже существует в моей таблице, он должен выдавать ошибку, которая
Этот код уже занят, попробуйте другой.
Используя Struts2, я хочу сделать это. Ниже мой класс действий.
Что я сделал: сначала я запустил запрос на выбор кода с использованием набора результатов и сохранил все результаты в переменной String temp_user
, а в методе validate()
я только что сравнил его с помощью метода equals(temp_user)
, но это не работает.
РегистрацияAction.java
package org.entity;
import java.io.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.wsdl.Message;
import org.apache.struts2.interceptor.SessionAware;
import nl.captcha.Captcha;
import com.opensymphony.xwork2.ActionSupport;
public class RegistrationAction extends ActionSupport implements SessionAware {
BloodBank register;
private Map<String, Object> session;
private String temp_user;
public BloodBank getRegister() {
return register;
}
public void setRegister(BloodBank register) {
this.register = register;
}
public Map<String, Object> getSession() {
return session;
}
public void setSession(Map<String, Object> session) {
this.session = session;
}
public String getTemp_user() {
return temp_user;
}
public void setTemp_user(String temp_user) {
this.temp_user = temp_user;
}
@Override
public String execute() throws Exception {
try {
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/foryou", "root", "siddheshkk");
System.out.println("Driver Loaded");
Statement st12 = con.createStatement();
PreparedStatement st = con
.prepareStatement("insert into bbinfo(code,name,address,city,district,contactno,stdcode,password,aname,email) "
+ "values(?,?,?,?,?,?,?,?,?,?)");
st.setString(1, register.getCode());
st.setString(2, register.getBbname());
st.setString(3, register.getAddress());
st.setString(4, register.getCity());
st.setString(5, register.getDistrict());
st.setString(6, register.getNumber());
st.setString(7, register.getStd());
st.setString(8, register.getPassword());
st.setString(9, register.getAname());
st.setString(10, register.getEmail());
st.executeUpdate();
st.close();
PreparedStatement st1 = con
.prepareStatement("insert into stockinfo(name,city,address,contact,email,code,stdcode,apositive,anegative,bpositive,bnegative,abpositive,abnegative,opositive,onegative)"
+ "values(?,?,?,?,?,?,?,'0','0','0','0','0','0','0','0')");
st1.setString(1, register.getBbname());
st1.setString(2, register.getCity());
st1.setString(3, register.getAddress());
st1.setString(4, register.getNumber());
st1.setString(5, register.getEmail());
st1.setString(6, register.getCode());
st1.setString(7, register.getStd());
st1.executeUpdate();
st1.close();
System.out.println("done");
ResultSet rs12 = st12.executeQuery("select code from bbinfo");
while (rs12.next()) {
temp_user = rs12.getString("code");
}
con.close();
} catch (Exception e) {
e.printStackTrace();
}
return "success";
}
@Override
public void validate() {
super.validate();
if (register.getCode().length() < 1 | register.getCode().equals("")) {
addFieldError("register.code", "Mandatory Field.");
}
if(register.getCode().equals(getTemp_user()))
{
addFieldError("register.code", "This Code is already taken. Please try different one.");
}
if (register.getBbname().equals("") | register.getBbname().length() < 1) {
addFieldError("register.bbname", "Invalid Name");
}
if (register.getAddress().equals("")) {
addFieldError("register.address", "Invalid Address");
}
if (register.getCity().equals("")) {
addFieldError("register.city", "Invalid City");
}
if (register.getDistrict().equals("")) {
addFieldError("register.district", "Invalid District");
}
if (register.getPassword().length() > 8
| register.getPassword().equals("")) {
addFieldError("register.password", "Please Enter a valid Password");
}
if (!(register.getConfirm().equals(register.getPassword()))) {
addFieldError("register.confirm", "Password doesnt match");
}
if (register.getConfirm().isEmpty()) {
addFieldError("register.confirm", "Please enter confirmed password");
}
if (register.getAname().equals("")) {
addFieldError("register.aname", "Please enter your name");
;
}
if (register.getEmail().equals("")) {
addFieldError("register.email", "Invalid Email Id");
} else {
String expression = "^[\\w\\-]([\\.\\w])+[\\w]+@([\\w\\-]+\\.)+[A-Z]{2,4}$";
CharSequence inputStr = register.getEmail();
Pattern pattern = Pattern.compile(expression,
Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(inputStr);
if (!matcher.matches())
addFieldError("register.email", "Invalid email address");
}
Captcha captcha = (Captcha) session.get(Captcha.NAME);
if (!(captcha.isCorrect(register.getCaptchaAnswer()))) {
addFieldError("register.captchaAnswer", "incorrect captcha");
}
}
}