2015-10-27 94 views
0

我有一種方法來檢查用戶輸入是否正確,因爲卡信息&返回錯誤消息(服務器端)的方法。調用兩種方法返回Java中的不同頁面

如果所有信息都正確,我想返回付款成功頁面。 如果用戶輸入與電子表格中的卡信息不匹配,則返回付款失敗頁面。 < <目前我的程序可以做到這一點。

如果用戶留下一個空白字段,即卡號,我希望它用驗證消息返回相同的頁面。

@RequestMapping(value = "/payment-submission", method = RequestMethod.POST) 
public String handlePaymentSubmission(@ModelAttribute PaymentDetails paymentDetails, BindingResult resulttwo) { 

if (payService.isPaymentDetailsCorrect(paymentDetails)) { 
    return PAYMENT_SUCCESSFUL; 
} 

return PAYMENT_FAILED; 

這是我目前使用的代碼。

我不知道如何調用下面的方法來檢查上面的驗證,以確保它返回正確的頁面。

private void validatePaymentDetails(final PaymentDetails paymentDetails, final BindingResult resulttwo) { 

    if (StringUtils.isBlank(paymentDetails.getCardNumber())) { 
     resulttwo.addError(new FieldError("paymentDetails", "cardNumber", 
      "validate.payment-details-cardnumber.empty.message")); 
     return; 
    } 
} 

正如前面的文章中提到的,我是新來的,學習JAVA很抱歉,如果這是令人困惑或不正確的。

所有幫助表示讚賞。

回答

0

使用spring驗證框架,你可以實現這一點。

1)創建一個自定義驗證器&實現如下的Validator類。

import org.springframework.stereotype.Component; 
import org.springframework.validation.Errors; 
import org.springframework.validation.ValidationUtils; 
import org.springframework.validation.Validator; 

@Component 
public class PaymentValidator implements Validator{ 

@Override 
public boolean supports(Class<?> paramClass) { 

    return PaymentDetails.class.equals(paramClass); 
} 

@Override 
public void validate(Object arg0, Errors errors) { 
    ValidationUtils.rejectIfEmptyOrWhitespace(errors, "cardNumber", "error.cardNumber" , "Please give valid cardnumber"); 
} 

} 

2)在控制器,調用此validate方法並且如下處理。

@RequestMapping(value = "/payment-submission", method = RequestMethod.POST) 
public String handlePaymentSubmission(@ModelAttribute PaymentDetails paymentDetails, BindingResult result) { 

    paymentValidator.validate(paymentDetails, result); 

    if(! result.hasErrors()) { 
    return PAYMENT_SUCCESSFUL; 

    } 

    return INPUT_PAGE; 
} 

3)在JSP頁面中,你要顯示的消息

<form:errors path="cardNumber" cssStyle="color: #ff0000;"/> 
添加此下方元素
相關問題