Java 我的jsp页面返回空值

Java 我的jsp页面返回空值,java,jsp,servlets,nul,Java,Jsp,Servlets,Nul,您好,我的jsp页面返回空属性。每次我填写表格时都会出现“必须填写所有字段”错误。这是我的密码: Jsp代码 <%@ page pageEncoding="UTF-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <tit

您好,我的jsp页面返回空属性。每次我填写表格时都会出现“必须填写所有字段”错误。这是我的密码:

Jsp代码

 <%@ page pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Registration with eBank</title>
<link type="text/css" rel="stylesheet" href="style1.css" />
</head>
<body>
    <form method="post" action="registrationAdmin" enctype="multipart/form-data">
        <fieldset>
            <legend>Personal Information</legend>
            <p>Begin your application with this form.</p>

            <label for="firstname">First name <span class="required">*</span></label>
            <input type="text" id="firstname" name="firstname"
                value="<c:out value="${admin.firstname}"/>" size="20" maxlength="60" />
            <span class="error">${form.errors['firstname']}</span> <br /> 
            <label for="lastname">Last name <span class="required">*</span></label> <input
                type="text" id="lastname" name="lastname"
                value="<c:out value="${admin.lastname}"/>" size="20" maxlength="60" />
            <span class="error">${form.errors['lastname']}</span> <br /> 
            <label for="email">Email address <span class="required">*</span></label>
            <input type="email" id="email" name="email"
                value="<c:out value="${admin.email}"/>" size="20" maxlength="60" />
            <span class="error">${form.errors['email']}</span> <br /> 
            <label for="password">Password <span class="required">*</span></label>
            <input type="password" id="password" name="password" value=""
                size="20" maxlength="20" /> <span class="error">${form.errors['password']}</span>
            <br />
             <label for="confirmation">Confirmation of password <span class="required">*</span></label>
                <input type="password" id="confirmation" name="confirmation" value="" size="20" maxlength="20" />
                <span class="error">${form.errors['confirmation']}</span>
            <br />
            <br />
            <input type="submit" value="registration" class="sansLabel" />
                <br />

                <p class="${empty form.errors ? 'success' : 'error'}">${form.result}</p>
                <br />
        </fieldset>

    </form>

</body>
</html>
及我的表格编号:

public class RegistrationAdminForm {
    private static final String EMAIL_FIELD = "email";
    private static final String PASS_FIELD = "password";
    private static final String FNAME_FIELD = "firstname";
    private static final String LNAME_FIELD = "lastname";
    private static final String CONF_FIELD = "confirmation";
    private static final String ALGO = "SHA-256";
    private String result;
    private Map<String, String> errors = new HashMap<String, String>();

    public String getResult() {
        return result;
    }

    public Map<String, String> getErrors() {
        return errors;
    }
    private AdminDao adminDao;
    public RegistrationAdminForm(AdminDao adminDao){
        this.adminDao = adminDao;
    }
    public Admin registerAdmin( HttpServletRequest request ) {
        String email = getFieldValue( request, EMAIL_FIELD );
        String password = getFieldValue( request, PASS_FIELD );
        String firstname = getFieldValue( request, FNAME_FIELD );
        String lastname = getFieldValue( request, LNAME_FIELD );
        String confimation = getFieldValue( request, CONF_FIELD );
        Admin admin = new Admin();
        try{
            try {
                validateEmail( email );
            } catch (FormValidationException e ) {
                setError( EMAIL_FIELD, e.getMessage() );
            }
            admin.setEmail( email );

            try {
                validateName( firstname, lastname );
            } catch (FormValidationException e ) {
                setError( FNAME_FIELD, e.getMessage() );
                setError( LNAME_FIELD, e.getMessage() );
            }
            admin.setFirstname(firstname);
            admin.setLastname(lastname);
            treatPassword(password, confimation, admin);
            if ( errors.isEmpty() ) {

                adminDao.create(admin);
                result = "Congrats, you are successfully registred!";
            } else {
                result = "Registration failed. Please try again!";
            }
        }catch(DAOException e){
            result = "Registration Error, Please try again Later...";
            e.printStackTrace();
        }

        return admin;
    }
    private void validateName( String firstname, String lastname ) throws FormValidationException {
        if ( firstname != null && lastname !=null ) {
            if ( firstname.length() < 3 ) {
                throw new FormValidationException( "Firstname must be at least 3 characters long" );
            }else if ( lastname.length() < 3 ){
                throw new FormValidationException( "Lastname must be at least 3 characters long" );
            }
        } else {
            throw new FormValidationException( "All fields must be filled out." );
        }
    }
    private void validateEmail( String email ) throws FormValidationException {
        if ( email != null ) {
            if ( !email.matches( "([^.@]+)(\\.[^.@]+)*@([^.@]+\\.)+([^.@]+)" ) ) {
                throw new FormValidationException( "Please enter a valid email address!" );
            }else if(adminDao.find(email)!= null){
                throw new FormValidationException("This email address is already used for another account, Please choose another email address.");

            }
        }else{
                throw new FormValidationException( "Please enter an email address!" );
        }
    }
    private void treatPassword (String password, String confirmation, Admin admin){
        try {
            validatePassword( password, confirmation );
        } catch ( FormValidationException e ) {
            setError( PASS_FIELD, e.getMessage() );
            setError( CONF_FIELD, null );
        }
        ConfigurablePasswordEncryptor passwordEncryptor = new ConfigurablePasswordEncryptor();
        passwordEncryptor.setAlgorithm( ALGO );
        passwordEncryptor.setPlainDigest( false );
        String encyptedPassword = passwordEncryptor.encryptPassword( password );

        admin.setPassword(encyptedPassword);
    }
    private void validatePassword( String password, String confirmation ) throws FormValidationException {
        if ( password != null && confirmation != null ) {
            if ( !password.equals( confirmation ) ) {
                throw new FormValidationException( "Passwords don't match!" );
            } else if ( password.length() < 6 ) {
                throw new FormValidationException( "Passwords must be at least 6 characters long" );
            }
        } else {
            throw new FormValidationException( "Please enter and confirm your password!" );
        }
    }
    private void setError( String field, String message ) {
        errors.put( field, message );
    }


     private static String getFieldValue( HttpServletRequest request, String FieldName ) {
            String value = request.getParameter( FieldName );
            if ( value == null || value.trim().length() == 0 ) {
                return null;
            } else {
                return value;
            }
     }
}
公共类注册管理信息{
私有静态最终字符串EMAIL\u FIELD=“EMAIL”;
私有静态最终字符串传递\u FIELD=“password”;
私有静态最终字符串FNAME\u FIELD=“firstname”;
私有静态最终字符串LNAME\u FIELD=“lastname”;
私有静态最终字符串CONF_FIELD=“确认”;
专用静态最终字符串ALGO=“SHA-256”;
私有字符串结果;
私有映射错误=新HashMap();
公共字符串getResult(){
返回结果;
}
公共映射getErrors(){
返回错误;
}
私人管理员;
公共注册管理信息(AdminDao AdminDao){
this.adminDao=adminDao;
}
公共管理注册表管理员(HttpServletRequest){
字符串email=getFieldValue(请求,email_字段);
字符串密码=getFieldValue(请求,通过字段);
String firstname=getFieldValue(请求,FNAME_字段);
字符串lastname=getFieldValue(请求,LNAME\u字段);
字符串确认=getFieldValue(请求,CONF_字段);
Admin=newadmin();
试一试{
试一试{
验证电子邮件(电子邮件);
}捕获(FormValidationException e){
setError(EMAIL_字段,例如getMessage());
}
管理员设置电子邮件(电子邮件);
试一试{
validateName(firstname,lastname);
}捕获(FormValidationException e){
setError(FNAME_字段,例如getMessage());
setError(LNAME_字段,例如getMessage());
}
管理员setFirstname(firstname);
管理员setLastname(lastname);
密码(密码、确认、管理员);
if(errors.isEmpty()){
创建(admin);
result=“恭喜,您已成功注册!”;
}否则{
结果=“注册失败。请重试!”;
}
}捕获(DAOE){
结果=“注册错误,请稍后再试…”;
e、 printStackTrace();
}
返回管理员;
}
私有void validateName(String firstname,String lastname)抛出FormValidationException{
if(firstname!=null&&lastname!=null){
if(firstname.length()<3){
抛出新的FormValidationException(“Firstname必须至少有3个字符长”);
}else if(lastname.length()<3){
抛出新的FormValidationException(“Lastname必须至少有3个字符长”);
}
}否则{
抛出新的FormValidationException(“必须填写所有字段”);
}
}
私有void validateEmail(字符串电子邮件)引发FormValidationException{
如果(电子邮件!=null){
如果(!email.matches(([^.@]+)(\\.[^.@]+)*@([^.@]+\\.)+([^.@]+)”){
抛出新的FormValidationException(“请输入有效的电子邮件地址!”);
}else if(adminDao.find(email)!=null){
抛出新的FormValidationException(“此电子邮件地址已用于其他帐户,请选择其他电子邮件地址。”);
}
}否则{
抛出新的FormValidationException(“请输入电子邮件地址!”);
}
}
私有密码(字符串密码、字符串确认、管理员){
试一试{
validatePassword(密码、确认);
}捕获(FormValidationException e){
setError(PASS_字段,例如getMessage());
setError(CONF_字段,null);
}
ConfigurablePasswordEncryptor passwordEncryptor=新的ConfigurablePasswordEncryptor();
密码加密算法(ALGO);
passwordEncryptor.setPlainDigest(false);
字符串encyptedPassword=passwordEncryptor.encryptPassword(密码);
管理员设置密码(encyptedPassword);
}
私有void validatePassword(字符串密码、字符串确认)引发FormValidationException{
if(密码!=null&&confirmation!=null){
如果(!password.equals(确认)){
抛出新的FormValidationException(“密码不匹配!”);
}else if(password.length()<6){
抛出新的FormValidationException(“密码长度必须至少为6个字符”);
}
}否则{
抛出新的FormValidationException(“请输入并确认您的密码!”);
}
}
私有void setError(字符串字段,字符串消息){
错误。放置(字段、消息);
}
私有静态字符串getFieldValue(HttpServletRequest请求,字符串FieldName){
字符串值=request.getParameter(FieldName);
if(value==null | | value.trim().length()==0){
返回null;
}否则{
返回值;
}
}
}
getParamaeter(“param”)每次都返回null,尽管参数名称与JSP中的名称匹配。 任何帮助都将不胜感激。 谢谢

您应该删除:

enctype="multipart/form-data"
request.getParameter()不适用于多部分表单

enctype="multipart/form-data"