如何在Spring MVC中显示空白文本框而不是零

时间:2019-04-28 10:17:07

标签: spring-mvc

我使用带有休眠验证器的spring mvc。我的问题是,当整数值为零时,它将在我的文本框中显示0。我只想显示空字符串。怎么做?

在我的JSP中:

<form:form action ="processForm" modelAttribute="customer" >
...
...
Free Passes: <form:input path="freePasses"/>
<form:errors path="freePasses" cssClass="error" />
<input type="submit" value="submit" />
</form:form>

我的客户类别:

public class Customer {
...
private int freePasses;
}

我的控制器

public class CustomerController {
@RequestMapping("/showForm")
public String showForm(Model model) {
    model.addAttribute("customer",new Customer());
    return "customer-form";
}

@RequestMapping("/processForm")
public String processForm(@Valid @ModelAttribute("customer") Customer cust,
        BindingResult result) {
    if(result.hasErrors()) {
        return "customer-form";
    } else {
        return "customer-confirmation";
    }
}
}

加载表单时,我想在“免费通过”字段中看到不为零的空白。

Result I am getting

Expected Result

2 个答案:

答案 0 :(得分:0)

如果条件标签,请使用<c:if> JSP JSTL(java标准标签库),并检查条件的值为0,并将值设置为“”空字符串,如下所示。

<c:if test = "${customer.freePasses == 0}">
   //put text area with empty string
</c:if>

引用https://www.tutorialspoint.com/jsp/jstl_core_if_tag.htm

答案 1 :(得分:0)

您使用的是原始类型int,默认类型为0。

  

private int freePasses;

我建议您使用包装器Integer来解决您的问题。

  

private Integer freePasses;

注意:一旦从int更改为Integer,请不要忘记重新生成getter / setter。