JSF:-Problem与DataType和Action Listener

时间:2011-09-10 09:15:41

标签: java jsf jsf-2 richfaces actionlistener

我在添加两个特定组件时面临dataType组件和ActionListener的问题......

JSF的代码片段是: -

<h:outputLabel value="#{msg.org_SubscriberGroupId_1} " styleClass="intro" escape="false"/>
<h:outputLabel value="&nbsp;:&nbsp;" escape="false"/>
<h:inputText value="#{SubscriberServiceProfile.closedSubscriberGroupId1}" id="txtClosdGrup1" styleClass="textBox" label="#{msg.org_SubscriberGroupId_1}" />                                                     

<h:outputLabel value="#{msg.org_expiryDate_1}" styleClass="intro" escape="false"/>
<h:outputLabel value="&nbsp;:&nbsp;" escape="false"/>
<rich:calendar id="expiryDate1" value="#{SubscriberServiceProfile.dtExpiryDate1}" styleClass="textBox" datePattern="dd-MMM-yyyy" required="false" label="#{msg.org_expiryDate_1}" />

代码重复5次......使用不同的ID ...和不同的索引......

我的支持Bean代码是: -

public class ServiceProfile
{

private String closedubscriberGroupId1="0";
private String closedSubscriberGroupId2="0";
private String closedSubscriberGroupId3="0";
private String closedSubscriberGroupId4="0";
private String closedSubscriberGroupId5="0";
private Date dtExpiryDate1;
private Date dtExpiryDate2;
private Date dtExpiryDate3;
private Date dtExpiryDate4;
private Date dtExpiryDate5;

//respective getters and setters

public void create(ActionListener act)
{
//action listener code
}

}

问题在于ClosedSubscriberGroup的数据类型或到期日期。 用户将在closedSubscriberGroup Id输入字段中输入整数值。

但问题是我的actionListener没有被触发,除非我在closedSubscriberGroupId的所有5个文本框中指定值。在JSF中没有验证.Still它不允许我提交表单和调用的ActionListener。

可能出现什么问题.. ???? ..是DataType ???或任何其他问题?? ... 请指导我......

1 个答案:

答案 0 :(得分:1)

从您的评论中,您似乎希望将您在<h:inputText><rich:calendar>中输入的值设置为其支持bean,并在{{1}上每当onchange事件时立即调用bean方法和<h:inputText>发生了

您可以使用<rich:calendar>

a4j:support

这意味着只要在<rich:calendar value="#{bean.date}" styleClass="textBox" datePattern="dd-MMM-yyyy" required="false"> <a4j:support event="onchanged" action="#{bean.onChangeDate}" ajaxSingle="true"/> </rich:calendar> <h:inputText value="#{bean.aString}" styleClass="textBox"> <a4j:support event="onchange" action="#{bean.onChangeText}" ajaxSingle="true" /> </h:inputText> <h:inputText>上发生onchange事件,就会触发Ajax请求以调用<rich:calendar>属性指定的方法。 action属性在此非常重要,因为它会在调用ajaxSingle之前将您在控件中输入的值立即设置为其辅助bean。

请注意,对于action,onchange事件为 onchanged 而非 onchange

参考: