Java 我的jsp页面返回空值
您好,我的jsp页面返回空属性。每次我填写表格时都会出现“必须填写所有字段”错误。这是我的密码: 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
<%@ 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"