我使用JSF 2.0和Primefaces 3.4.1
以下是我的要求
我有一个h:selectOneMenu来填充用户列表。user是一个必填字段,我需要选择用户,然后单击Submit按钮将用户传递给backingbean。页面上还有其他按钮。我已经实现了一个自定义转换器,将选择转换为相应的用户对象模型。应该完成转换,并且只有在单击Submit按钮时才应该将所选用户提交给backingbean。
但是我的Converter"technLeadConverter"方法会被调用,用于所有的按钮单击,甚至当我单击菜单项从页面导航时。
如何限制仅在提交按钮上调用转换器点击
以下是我的申报
XHTML页面
<h:selectOneMenu id="technicalLeads"
value="#{resourceMB.technicalLead}"
converter="#{techLeadConverter}"
required="#{not empty param[assignResource.clientId]}"
requiredMessage="#{bundle.TechLeadMandatory}">
<f:selectItem itemLabel="Select Technical Lead" itemValue=""></f:selectItem>
<f:selectItems value="#{resourceMB.technicalLeadList}" var="techLead"
itemValue="#{techLead}"
itemLabel="#{techLead.lastName}, #{techLead.firstName}">
</f:selectItems>
</h:selectOneMenu>
将这些按钮换成不同的形式。或者,更好的做法是,不要使用命令链接/按钮进行页面到页面的导航,而是使用普通的链接/按钮。