2017-09-26 74 views
0

我的應用程序對薪水字段使用javax驗證,這是int。用什麼註解我應該使用它,以避免類似的Javax空整數字段驗證

未能類型的屬性值「java.lang.String中」轉換爲 所需類型「詮釋」財產「工資」的錯誤信息;嵌套的例外是 java.lang.NumberFormatException:對於輸入字符串:「」

我當前的實現看起來是這樣的:

@Column(name = "salary", nullable = false) 
@NotNull(message= "salary may not be empty") 
@Range(min = 1) 
private int salary; 

我知道,我不能使用NotBlank一個INT領域,即導致錯誤。如果「字符串」爲空,我怎樣才能顯示消息「薪水可能不是空的」而不是上面的例外情況?謝謝

+0

將類型從原始類型'int'更改爲包裝類'Integer'。它會工作 – Yogi

+0

你可以檢查@NotEmpty。 –

+0

謝謝,我知道。還有其他解決方案嗎? – Alex

回答

0

我建議你使用對象類型Integer,它可以容納null值本身。

@Column(name = "salary", nullable = false) 
@NotNull(message= "salary may not be empty") 
@Range(min = 1) 
private Integer salary; 

上述保證會有總是salary輸入具有價值,它是等於或大於1

+0

有人會給我一個提示是什麼讓我的回答得到一個downvote?這些匿名downvotes是真的沒有幫助,我不知道如何解決一個錯誤,如果有任何。 –

0

該設置,您的Web部署描述符文件web.xml:

<context-param> 
    <param-name> 
     javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL 
    </param-name> 
    <param-value>true</param-value> 
</context-param> 
0

如果該字段包含在另一個類,如:

public static class Employee { 
    @Column(name = "salary", nullable = false) 
    @NotNull(message= "salary may not be empty") 
    @Range(min = 1) 
    private int salary; 
} 

也NE編輯以確保對Employee的實例使用@Valid:

@Valid @NotNull 
public Employee someEmployee;