JSF中的表单验证



我试图在提交之前验证表单,但没有按预期工作。

我的XHTML

<h:outputLabel for="name">Name: </h:outputLabel>
<p:inputText id="name"  value="#{partyCreationBean.name}" />
<h:message for="name"/>
<h:outputLabel for="symbol">Symbol: </h:outputLabel>

Here my webBean:

@ManagedBean(name = "partyCreationBean")
@RequestScoped
public class PartyCreationBean {
    @EJB
    PartyManagerLocal ejb_partymanager;
    @EJB
    AuthenticationManagerLocal ejb_user;
    private PartyDTO party = new PartyDTO();
    public String getName() {
        return party.getName();
    }
    public void setName(String name) {
        party.setName(name);
}

这里是我的DTO:

import org.hibernate.validator.constraints.*;
public class PartyDTO implements IDataTransferObject {
    private Integer id;
    @NotEmpty()
    private String name;
    //Getters, setters and other stuff.
}

现在的重点是,如果我留下"Name"为空,我按下按钮来创建我的派对,页面只是保持所有相同,我在控制台堆栈跟踪中得到异常(很像通常:D)

我尝试使用这个XHTML(添加require="true"):

<h:outputLabel for="name">Name: </h:outputLabel>
<p:inputText id="name" required="true" value="#{partyCreationBean.name}" />
<h:message for="name"/>
<h:outputLabel for="symbol">Symbol: </h:outputLabel>

,它工作得很好,但我想把我的"约束"在DTO级别…

提前感谢:)

@NotEmpty是行不通的。

你需要为this构建getter和setter:

private PartyDTO party = new PartyDTO();

然后你需要为

创建getter和setter
@NotEmpty
String name; 

然后在xhtml文件..

<p:inputText id="name"  required="true" value="#{partyCreationBean.party.name}" />

它应该可以工作。当然,如果你用的是required,那就可以了。

如果你有其他问题,这也可以帮助你。有时需要添加的几个jsf参数:Bean验证@NotNull, @NotBlank和@NotEmpty在JSF+Tomcat中不起作用

相关内容

  • 没有找到相关文章

最新更新