Как обращаться с JSF PrimeFaces Ajax - PullRequest
2 голосов
/ 02 марта 2020

Надеюсь, вы поможете мне. Я изучаю JSF и Primesface самостоятельно. У меня возникли проблемы с реализацией следующей формы JSF, и заставить ее работать так, как мне нужно

В основном

Мне нужна одна форма, и мне нужно выполнять AJAX всякий раз, когда значение изменяется в Форма. Я не могу выполнить этот разовый вызов Ajax для формы entr ie. Скорее, я должен вызывать его для каждого ввода данных, который мне нужно вызвать. Во-вторых, средство выбора даты не работает или теряет форматирование после выбора даты. Примечание. У меня нет никаких дополнительных Java Script ... к JSF.
Пожалуйста, обратитесь к дополнительному изображению, которое я прикрепил

. Далее возможно предоставить Single Ajax в случае изменения входных данных в ФОРМА, вместо каждого тега ввода.

В чем разница между f: ajax и p: ajax

JSF 2.3 Dynami c Web Module 4.0 Redhat JBOSS 7.2 Java 1.8 Простые лица 7.0

<html xmlns="http://www.w3.org/1999/xhtml" 
    xmlns:h="http://xmlns.jcp.org/jsf/html" 
            xmlns:f="http://xmlns.jcp.org/jsf/core" 
                    xmlns:ui="http://xmlns.jcp.org/jsf/facelets" 
                            xmlns:p="http://primefaces.org/ui">
                        <h:form styleClass="fill"  id="tinputForm">
                            <div style="color: #FFF; padding-left: 70px"><strong >INPUT PANEL</strong></div>
                            <hr/>
                            <h:panelGroup layout="block"  styleClass="CustomWell" >
                                <h:outputLabel value="Server-Class"/>

                                <h:panelGroup  layout="block" styleClass="radio">
                                    <h:selectOneRadio value = "#{sideBarInputsBean.serverClass}" layout="pageDirection" >
                                        <f:selectItem itemValue = "Gateway" itemLabel = "Gateway"  />
                                        <f:selectItem itemValue = "Facing Server" itemLabel = "Facing Server" />
                                        <f:selectItem itemValue = "Server Facing" itemLabel = "Server Facing" />
                                        <f:selectItem itemValue = "Central Server" itemLabel = "Central Server" />
                                        <!-- <p:ajax listener="#{sideBarInputsBean.printSelectedCRadioButton()}" />  -->

                                        <f:ajax event="click" listener="#{sideBarInputsBean.printSelectedCRadioButton()}" execute="@form" render="@form :tinputForm" />
                                    </h:selectOneRadio>    
                                </h:panelGroup>
                            </h:panelGroup>

                            <h:panelGroup layout="block"  styleClass="CustomWell" >

                                <h:outputLabel value="Choose a Parameter:"/>

                                <h:panelGroup  layout="block" styleClass="radio">
                                    <h:selectOneRadio  value = "#{sideBarInputsBean.parameter}" layout="pageDirection" >
                                        <f:selectItem itemValue = "IISLOG"  itemLabel = "IIS Log Counter"  />
                                        <f:selectItem itemValue = "ASPNET" itemLabel = "ASP DOT Net Counters" />
                                    </h:selectOneRadio>    
                                </h:panelGroup>
                            </h:panelGroup>

                            <h:panelGroup layout="block"  styleClass="CustomWell" >
                                <h:outputLabel value="Select a Server:"/>
                                <h:panelGroup rendered="#{sideBarInputsBean.serverClass == 'Gateway'}">
                                    <h:panelGroup layout="block" >
                                        <h:selectOneMenu  id="CLGWServer" value="#{sideBarInputsBean.serverName}" styleClass="mymenu">
                                            <f:selectItem itemLabel="Select One" itemValue="" />
                                            <f:selectItems value="#{dataForSideBarInputBean.clientGatewayList}" />
                                        <f:ajax event="change" listener="#{sideBarInputsBean.printSelectedCRadioButton()}" execute="@form"  render="@form :tinputForm" />
                                        </h:selectOneMenu>
                                    </h:panelGroup>
                                </h:panelGroup>

                                <h:panelGroup rendered="#{sideBarInputsBean.serverClass == 'Facing Server'}">
                                    <h:panelGroup layout="block" >
                                        <h:selectOneMenu id="CFASServer" value="#{sideBarInputsBean.serverName}" styleClass="mymenu">
                                            <f:selectItem itemLabel="Select One" itemValue="" />
                                            <f:selectItems value="#{dataForSideBarInputBean.clientFacingList}" />
                                        <f:ajax event="change" listener="#{sideBarInputsBean.printSelectedCRadioButton()}"  execute="@form" render="@form :tinputForm" />
                                        </h:selectOneMenu>
                                    </h:panelGroup>
                                </h:panelGroup>
                                </h:panelGroup>



                                <h:panelGroup layout="block"  styleClass="CustomWell" >
                                    <h:panelGroup layout="block" styleClass="datepick">
                                        <p:outputLabel value="Date:" />
                                        <p:datePicker  id="DateSelector" value="#{sideBarInputsBean.selectedDate}" showIcon="true" showTime="true" pattern="dd.MM.yyyy">
                                            <f:ajax event="dateSelect" listener="#{sideBarInputsBean.printSelectedCRadioButton()}" execute="@form" render="@form :tinputForm" />
                                        </p:datePicker>
                                    </h:panelGroup>
                                </h:panelGroup>



                        </h:form>

Код бина.

package cdv.mrdataanalytics.bean;

import java.io.IOException;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import javax.enterprise.context.SessionScoped;
import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;
import javax.inject.Named;



@Named("sideBarInputsBean")
@SessionScoped

public class SideBarInputsBean implements Serializable {


    private static final long serialVersionUID = 1L;

    private String serverClass="Gateway";
    private String parameter="IISLOG";
    private String serverName="";

    private Date selectedDate;

    public String getServerClass() {
        return this.serverClass;
    }

    public void setServerClass(String strClass) {
        this.serverClass = strClass;
    }

    public String getParameter() {
        return this.parameter;
    }

    public void setParameter(String strClass) {
        this.parameter = strClass;
    }

    public String getServerName() {
        return this.serverName;
    }

    public void setServerName(String strClass) {
        this.serverName = strClass;
    }

    public Date getSelectedDate() {
        return this.selectedDate;
    }

    public void setSelectedDate(Date date7) {
        this.selectedDate = date7;
    }

    public void printSelectedCRadioButton() throws IOException{
        System.out.println("Selected value = "+this.getServerClass());
        System.out.println("Parameter value = "+this.getParameter());
        System.out.println("ServerName = "+this.getServerName());
        System.out.println("SelectedDate = "+this.getSelectedDate());

        //ExternalContext ec = FacesContext.getCurrentInstance().getExternalContext();
        //ec.redirect(ec.getRequestContextPath() + "/next.xhtml?action=add");
    }

}

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...