2016-10-02 8 views
0

無効なプロパティBeanクラスの 'redeemVoucherForm' [my.testapp.forms.RedeemVoucherForm]私はエラーを取得してい

Invalid property 'redeemVoucherForm' of bean class [my.testapp.forms.RedeemVoucherForm]: Bean property 'redeemVoucherForm' is not readable or has an invalid getter method: Does the return type of the getter match the parameter type of the setter? 

RedeemVoucherForm.java:私のPageController.java

package my.testapp.forms; 

public class RedeemVoucherForm { 

    private String voucherCode; 

    public String getVoucherCode() { 
     return voucherCode; 
    } 

    public void setVoucherCode(String voucherCode) { 
     this.voucherCode = voucherCode; 
    } 
} 

、Iモデルmodel.containsAttribute( "redeemVoucherForm")を呼び出すとモデルredeemVoucherFormが追加されます:

@RequestMapping(method = RequestMethod.GET) 
public String showPage(final Model model) { 
    ... 
    model.addAttribute("redeemVoucherForm", new RedeemVoucherForm()); 
    ... 
    return REDIRECT_PAGE_URL; 
} 

@RequestMapping(value = "/redeem-voucher", method = RequestMethod.POST) 
public String redeemVoucher(@Valid final RedeemVoucherForm redeemVoucherForm, final BindingResult bindingResult, final RedirectAttributes redirectModel, final Model model, HttpServletRequest request) { 
    LOG.debug("<POST> Redeeming voucher..."); 

    return REDIRECT_PAGE_URL; 
} 

pageDisplay.jsp:

<c:url value="/page/redeem-voucher" var="redeemVoucherAction" /> 
<form:form action="${redeemVoucherAction}" method="post" commandName="redeemVoucherForm"> 
     <form:input cssClass="form-control" type="text" path="redeemVoucherForm.voucherCode"/> 
     <button type="submit" class="btn btn-primary btn-block checkoutButton"> 
      <spring:theme text="Redeem Voucher"/> 
     </button> 
</form:form> 

他に何私が欠落している可能性があり、私はモデルredeemVoucherFormを設定しているとき?

答えて

2

私はこのライン

<form:input cssClass="form-control" type="text" path="redeemVoucherForm.voucherCode"/> 

<form:input>path要素はあなたがあなたの<form:form>commandNameとして設定したオブジェクトに相対的でなければならない

<form:input cssClass="form-control" type="text" path="voucherCode"/> 

でなければなりません。信じてあなたの場合、このオブジェクトはクラスRedeemVoucherFormのインスタンスです。

パスをredeemVoucherForm.voucherCodeに設定した場合、SpringはクラスRedeemVoucherFormredeemVoucherFormプロパティを探します。この値は、voucherCodeプロパティを持つオブジェクトであることが予想され、そこからフォームの値を読み取ることができます。もちろん、redeemVoucherFormプロパティは存在しないため、エラーが発生します。

+0

「redeemCode」?それはあなたのコードのどこかにあるはずですが、投稿したコードのどこにも表示されません。 –

+0

私の悪い、私は再び間違って入力しました。 voucherCodeの代わりに、私はredeemCodeを書きました。全て大丈夫。大変ありがとうございました! – Kapparino

関連する問題