Primefaces SelectOneMenu阻止其他方法

西里

嗨,大家好,我有一个问题,我正在使用selctOneMenu,在我选择了一个替代方法之后,服务器端的其他方法再也不会触发了,因此我不知道为什么

这是我的jsf代码片段

....
...
<p:panel style="height:85px;">

                        <h:outputLabel
                            style="font: italic;font-family:serif;font-weight: lighter;font-size: x-large;">
                                Mode de Payement:   
                    </h:outputLabel>

                        <p:selectOneMenu value="#{commandeActBeanc.modePayement}">
                            <f:selectItem itemLabel="--" itemValue="" />
                            <f:selectItems value="#{modePayementArtBean.modesPayementLista}" 
                                var="mode" itemLabel="#{mode.intitule}" itemValue="#{mode}" />
                        </p:selectOneMenu>
                    </p:panel>
                </h:panelGrid>
                <br />

                <p:contextMenu for="articles" widgetVar="cMenu">
                    <p:menuitem value="Edit Cell" icon="ui-icon-search"
                        onclick="PF('BCTable').showCellEditor();return false;" />
                    <p:menuitem value="Hide Menu" icon="ui-icon-close"
                        onclick="PF('cMenu').hide()" />
                </p:contextMenu>

                <p:dataTable id="articles" var="art" rendered="true"
                    paginator="true" rows="10" style="width:99%;padding-left:8px;"
                    value="#{commandeActBeanc.mediumArticleSuppModel}" editable="true"
                    editMode="cell" widgetVar="BCTable"
                    rowKey="#{art.idArtileBoncommande}"
                    selection="#{commandeActBeanc.selectedArticlesSupp}">

                    <f:facet name="header">
                            Commande n° #{commandeActBeanc.cmd.idBoncommande}
                    </f:facet>

                    <p:ajax event="cellEdit" listener="#{commandeActBeanc.onCellEdit}"
                        update=":form:messages,:@this,:form:totaleTtc,:form:totaleHt,:form:totaleTva" />

                    <p:column selectionMode="multiple" style="width:2%" />
                    <p:column headerText="code.Art" style="width:15%">

                            #{art.codeArticle} 

                    </p:column>

                    <p:column headerText="Libelle.Art" style="width:15%">

                                 #{art.referenceArticle}

                    </p:column>

                    <p:column headerText="P.U en TTC" style="width:15%">
                        #{art.prixUnitTtc}
                    </p:column>

                    <p:column headerText="Quantité" style="width:15%">
                        <p:cellEditor>
                            <f:facet name="output">
                                <h:outputText value="#{art.quantite}" />
                            </f:facet>
                            <f:facet name="input">
                                <p:inputText value="#{art.quantite}" style="width:96%"
                                    label="Quantite" />

                            </f:facet>
                        </p:cellEditor>
                    </p:column>

这是我的豆子:

@Component("commandeActBeanc")
@SessionScoped
public class CommandeActionBean {

    @Autowired
    private transient ICommandeDao commandeDAO;
    @Autowired
    private transient IPcArticleBoncommandeDao articleCommandeDAO;
    @Autowired
    private transient IProduitDao articleDAO;

    private Integer idBoncommande;
    private Agent agent;
    private ModePayement modePayement;
    private String numero;
    private Boolean isValide;
    private Boolean isSolde;
    private Boolean isImprime;
    private Boolean isSaved;
    private Date dte;

这是我的ModPayemenActionBean

@Component("modePayementArtBean")
@SessionScoped
public class ModePayementActionBean {

    @Autowired
    IModePayementDao modePayementDao;
    private String intitule;
    private List<ModePayement> modesPayementLista= new ArrayList<ModePayement>();
    /*-----------------------------------Setters et Getters--------------------------------*/


    public IModePayementDao getModePayementDao() {

        return modePayementDao;
    }

    public ModePayementActionBean() {

    }

    public List<ModePayement> getModesPayementLista() {
        modesPayementLista= new ArrayList<ModePayement>();
        modesPayementLista.addAll(getModePayementDao().findAll());
        for (int i=0;i<modesPayementLista.size();i++){
            System.out.println(modesPayementLista.get(i));
        }
        return modesPayementLista;
    }

    public void setModesPayementLista(List<ModePayement> modesPayementLista) {
        this.modesPayementLista = modesPayementLista;
    }

    public void setModePayementDao(IModePayementDao modePayementDao) {
        this.modePayementDao = modePayementDao;
    }

    public String getIntitule() {
        return intitule;
    }

    public void setIntitule(String intitule) {
        this.intitule = intitule;
    }

}
sghaier ali

嗨,您的问题是:您没有在

改变这个:

<p:selectOneMenu value="#{commandeActBeanc.modePayement}">
                        <f:selectItem itemLabel="--" itemValue="" />
                        <f:selectItems value="#{modePayementArtBean.modesPayementLista}" 
                            var="mode" itemLabel="#{mode.intitule}" itemValue="#{mode}" />
                    </p:selectOneMenu>

和:

<p:selectOneMenu value="#{commandeActBeanc.modePayement}" converter="modePayementConvertor">
                        <f:selectItem itemLabel="--" itemValue="" />
                        <f:selectItems value="#{modePayementArtBean.modesPayementLista}" 
                            var="mode" itemLabel="#{mode.intitule}" itemValue="#{mode}" />
                    </p:selectOneMenu>

然后,您像这样编写桅杆类class modePayementConvertor:

@FacesConverter(value = "modePayementConvertor", forClass = IModePayementDao.class)
public class ModePayementConverter implements Converter {
@Override
public Object getAsObject(FacesContext arg0, UIComponent arg1, String arg2) {
    Integer target = new Integer(arg2);
/**this use hibernate change it if u like **/
    Session session = ConnectionDb.getInstance().openSession();
    IModePayementDao modePayement= (IModePayementDao) session.get(IModePayementDao.class, target);
    session.close();
    return modePayement;
}

@Override
public String getAsString(FacesContext arg0, UIComponent arg1, Object arg2) {
    try {
        return ((IModePayementDao) arg2).getId().toString();
    }
    catch (NullPointerException ex) {
        return "";
    }
}}

为了完成,您必须@Override IModePayementDao中的方法,如下所示:

/**
 * @see java.lang.Object#equals(java.lang.Object)
 */
@Override
public boolean equals(Object obj) {

    if (obj instanceof IModePayementDao ) {

        if (((IModePayementDao ) obj).getId().equals(this.id)) {
            return true;
        }
        else {
            return false;
        }
    }
    else {
        return false;
    }

}

现在一切都好:)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

从调用其他方法的方法

Primefaces Ajax oncomplete方法

SelectOneMenu更新其他SelectOneMenu

模拟其他方法

如何在Primefaces DataTable中使用Font Awesome(或其他字体图标)代替jQuery Sprite?

覆盖Primefaces特定小部件中的方法

如果其他portlet包含<form>标记,则PrimeFaces拖放操作不起作用

如何从其他方法引用变量?

Axios阻止执行其他方法

JSF Primefaces selectOneMenu组件问题

字符串上的Primefaces selectonemenu检查空值

Primefaces 3.5 / CSS-selectOneMenu和按钮垂直对齐

selectOneMenu(Primefaces)中选项的不同颜色

如何在javascript中获取primefaces selectOneMenu组件

selectOneMenu不选择默认值-JSF + Primefaces + Omnifaces

Primefaces 4.0 p:selectOneMenu valueChangeListener

Primefaces,使用表单标签的正确方法

Primefaces SelectOneMenu不会更新默认值

Primefaces selectonemenu必需的消息

JSF Primefaces selectonemenu在列表中打印对象哈希

Primefaces selectOneMenu更新outputLabel和inputText

Primefaces selectOneMenu不显示初始值

添加链接以在JSF / Primefaces selectonemenu中动态插入元素

Primefaces selectOneMenu不会将列表滚动到键入的字符

如何在primefaces selectonemenu中过滤多个字母?

类方法指向其他类的其他方法

动态设置为true时,Primefaces日历无法在其他选项卡中运行

在 Primefaces 中导出 .pdf 后如何重定向到其他页面?

Primefaces 可编辑 p:selectOneMenu chrome 自动填充问题