Удаление завершающих пробелов в <af: query> - PullRequest
0 голосов
/ 27 августа 2018

Мне интересно, поставляется ли JDeveloper с предустановленным параметром конфигурации, который позволяет удалить любые конечные пробелы из заданной строки. После того, как я добавляю дополнительное место в строку внутри критериев поиска af: query, в результате поиска отображается 0 результатов. Поскольку я использую критерии просмотра для определения предложения where, есть ли способ урезать критерии поиска для отображения моего запроса в JDeveloper? Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 31 августа 2018

Нет предустановленной конфигурации в Jdeveloper. Но если вы хотите обрезать строку, выбранную из компонента поискового запроса. Таким образом, вы можете переопределить атрибут queryListner в теге af: query.

Как пример,

 <af:query id="qryId2" headerText="Search" disclosed="true"
                          value="#{bindings.CreationDtVCriteriaQuery.queryDescriptor}"
                          model="#{bindings.CreationDtVCriteriaQuery.queryModel}"
                          queryListener="#{pageFlowScope.mainHandler.ProcessQuery}"
                          queryOperationListener="#{bindings.CreationDtVCriteriaQuery.processQueryOperation}"
                          resultComponentId="::pc5:resId1"
                          binding="#{pageFlowScope.mainHandler.tableQuery}"
                          displayMode="compact" saveQueryMode="hidden"
                          modeChangeVisible="false"
                          inlineStyle="width:500px"/>

Здесь, в примере выше, вы можете увидеть переопределенный метод queryListener.

Теперь, если критерий просмотра содержит 2 поля в компонентах поиска как

  Enquiry Name ( This is display name, In VO it is as EnqName) (Input text field)
  Enquiry Id   ( This is display name, In VO it is as EnqId) (Input text field)

Сейчас в бобе,

  public void ProcessQuery(QueryEvent queryEvent) {

    ConjunctionCriterion conCrit = qd.getConjunctionCriterion();
    //access the list of search fields
    List<Criterion> criterionList = conCrit.getCriterionList();
    for (Criterion criterion : criterionList) {
        AttributeDescriptor attrDescriptor =
            ((AttributeCriterion)criterion).getAttribute();

     if (attrDescriptor.getName().equalsIgnoreCase("EnqName")) {
        //To check which field is accessed from above both 
        //as in order, EnqName comes first and then EnqId , This condition returns true
         System.out.println("Retrived value is " ((AttributeCriterion)criterion).getValues().get(0));
         trim(((AttributeCriterion)criterion).getValues().get(0)); //trim it.. and use it
      }

    if (attrDescriptor.getName().equalsIgnoreCase("EnqId")) {
    //To check which field is accessed from above both 
      System.out.println("Retrived value is " ((AttributeCriterion)criterion).getValues().get(0));
      trim(((AttributeCriterion)criterion).getValues().get(0)); //trim it.. and use it
  }
    }
  }

Функция обрезки уже доступна для Java. Таким образом, вы можете сохранить полученное значение в строке и обрезать его. Надеюсь, это поможет.

0 голосов
/ 28 августа 2018

К сожалению, в JDeveloper нет предустановленной конфигурации, которая позволила бы вам обрезать строку внутри компонента запроса. Чтобы решить эту проблему, вам нужно будет создать собственный метод, который будет извлекать все поля поиска, в которые введены параметры поиска, обрезать их, устанавливать их обратно и использовать в качестве атрибута AttrivetureCriterion.

...