问题描述:同一个jsff页面中如果已有一个控件设置成required="true"属性的话,其他控件的<af:setActionListener 属性就会不好使。
看图:
Title设置成了required="true",co-creators后面的链接,点击的话,设置了传参方法<af:setActionListener from="#{row}" to="#{pageFlowScope.paperBuilder.editPaperBean.actor}"/>,结果出来的popup显示全是空的,参数值没有传过来。
title输入框部分的源码:
<af:inputText id="it2"
value="#{pageFlowScope.paperBuilder.editPaperBean.paper.topic}"
<span style="background-color: rgb(204, 51, 204);">required="true" </span>simple="true"
rendered="#{(pageFlowScope.paperBuilder.editPaperBean.paper.status.name == 'In-Edit' || pageFlowScope.paperBuilder.editPaperBean.paper.status.name == 'Pending Re-Submission') && pageFlowScope.paperBuilder.editPaperBean.creator || pageFlowScope.paperBuilder.editPaperBean.paper.status.name == 'New'}"
maximumLength="255" autoSubmit="true"/>
co-creator部分的源码:
<af:iterator id="i2"
value="#{pageFlowScope.paperBuilder.editPaperBean.paper.coCreators}"
var="row" rows="0">
<af:panelGroupLayout id="pgl21" inlineStyle="white-space:nowrap;">
<af:commandLink text="#{row.displayName}" partialSubmit="true" id="cl1" styleClass="link" inlineStyle="white-space:nowrap;">
<af:showPopupBehavior popupId="::p1" triggerType="click"/>
<span style="color:#6633FF;"> <span style="background-color: rgb(102, 102, 204);"><span style="color:#000000;"><af:setActionListener from="#{row}" to="#{pageFlowScope.paperBuilder.editPaperBean.actor}"/></span></span></span>
</af:commandLink>
解决办法:
去掉title的required="true",在后台写代码做必须填写的校验.
这样就好了: