2014-11-13 2 views
0

Я использую PrimeFaces. Успешно я реализовал много диалогов с использованием компонента PrimeTaces InputText. Для лучшего ввода форматирования и проверки на номера я проверил компонент InputNumber из PrimeFaces Extensions. Но когда я использую этот компонент, мой диалог не открывается, нажимая на кнопку.SyntaxError: missing} с использованием расширений frontfaces inputNumber с использованием jquery

После более тщательного тестирования и исследований я могу сказать более конкретно, что проблема зависит от используемого языка. Таким образом, язык, подобный «de» или «en», в порядке, но «de-ch» нет. Для де-ch используется специальный символ апострофа ' используется как разделитель тысяч.

Таким образом, использование апострофа в виде тысячи или десятичного разделителя приведет к ошибке.

В Internet Explorer 11, я получаю следующее сообщение об ошибке:.

SCRIPT1009: '}' expected 
file: jquery.js.xhtml, row: 14, column: 2888 
globalEval:function(e){if(e&&bI.trim(e)){(a5.execScript||function(i){a5["eval"].call(a5,i)})(e)}},camelCase:function(e){return e.replace(bS,"ms-") 

Ошибка находится на a5 [ "Eval"] Вызов (a5, я)

В светлячок 33,0 я получаю следующее сообщение об ошибке:

SyntaxError: missing } after property list 

Я свели задачу к следующему коду:

inputNumber.xhtml:

<html xmlns="http://www.w3.org/1999/xhtml" 
     xmlns:h="http://java.sun.com/jsf/html" 
     xmlns:ui="http://xmlns.jcp.org/jsf/facelets" 
     xmlns:f="http://java.sun.com/jsf/core" 
     xmlns:pe="http://primefaces.org/ui/extensions" 
     xmlns:p="http://primefaces.org/ui"> 

    <h:head> 

    </h:head> 

    <h:body> 

     <h:form> 
      <p:panelGrid columns="4"> 
       <p:commandButton id="btnActionListenerPinputText" 
           value="InputText Dialog via ActionListener" 
           actionListener="#{dtDialogView.onShowPITDialog}"/> 
       <p:commandButton id="btnOnSuccessPinputText" 
           value="InputText Dialog via OnSuccess" 
           onsuccess="PF('pitDlg').show();"/> 
       <p:commandButton id="btnOnClickPinputText" 
           value="InputText Dialog via OnClick" 
           onclick="PF('pitDlg').show();"/> 
       <p:commandButton id="btnOnCompletePinputText" 
           value="InputText Dialog via OnComplete" 
           oncomplete="PF('pitDlg').show();"/> 

       <p:commandButton id="btnActionListenerPEinputNumber" 
           value="InputNumber Dialog via ActionListener" 
           actionListener="#{dtDialogView.onShowPEINDialog}"/> 
       <p:commandButton id="btnOnSuccessPEinputNumber" 
           value="InputNumber Dialog via OnSuccess" 
           onsuccess="PF('peinDlg').show();"/> 
       <p:commandButton id="btnOnClickPEinputNumber" 
           value="InputNumber Dialog via OnClick" 
           onclick="PF('peinDlg').show();"/> 
       <p:commandButton id="btnOnCompletePEinputNumber" 
           value="InputNumber Dialog via OnComplete" 
           oncomplete="PF('peinDlg').show();"/> 
      </p:panelGrid> 
     </h:form> 

     <!-- primefaces inputText dialog --> 
     <h:form id="form-dlgpit"> 
      <p:dialog id="dlgpit" 
         header="PrimeFaces Input Text" 
         widgetVar="pitDlg" 
         resizable="false" 
         dynamic="true" 
         modal="true"> 

       <h:outputText id="amount_label" value="Amount"/> 
       <p:inputText id="amount_value" value="#{dtDialogView.amount}" /> 

       <p:commandButton id="btnPitSave" 
           value="Save" 
           oncomplete="{PF('pitDlg').hide();}"/> 
      </p:dialog> 
     </h:form> 

     <!-- primefaces extensions inputNumber dialog --> 
     <h:form id="form-dlgpein"> 
      <p:dialog id="dlgpein" 
         header="PrimeFaces Extensions Input Number" 
         widgetVar="peinDlg" 
         resizable="false" 
         dynamic="true" 
         modal="true"> 

       <h:outputText id="amount_label" value="Amount"/> 
       <pe:inputNumber id="amount_value" value="#{dtDialogView.amount}" 
           thousandSeparator="'" 
           decimalSeparator="."/> 

       <p:commandButton id="btnPeinSave" 
           value="Save" 
           oncomplete="{PF('peinDlg').hide();}"/> 
      </p:dialog> 
     </h:form> 
    </h:body> 
</html> 

DialogView.java

@ManagedBean(name = "dtDialogView") 
@ViewScoped 
public class DialogView implements Serializable { 

    private Long amount; 


    public Long getAmount() { 
     return amount; 
    } 


    public void setAmount(Long amount) { 
     this.amount = amount; 
    } 


    public void onShowPITDialog() { 
     RequestContext.getCurrentInstance().execute("PF('pitDlg').show();"); 
    } 


    public void onShowPEINDialog() { 
     RequestContext.getCurrentInstance().execute("PF('peinDlg').show();"); 
    } 
} 

Окружающая среда Я использую:

  • PrimeFaces 5.1.3
  • PrimeFaces Расширения 3.0.0
  • Tomcat 8.0.14
  • Java Server Faces 2.2
+0

я сделал больше испытаний и исследований и адаптировали описание – gipsyrg

+0

Эта ошибка является открытым вопросом в PrimeFaces Extensions InputNumber, проверьте [ссылка] (https://github.com/primefaces-extensions/primefaces-extensions.github .com/вопросы/274) – gipsyrg

ответ

0

До тех пор, пока исправление в PrimeFaces Extensions, проверьте link в системе отслеживания проблем PrimeFaces расширений и избежать апостроф с обратной косой черты в коде XHTML.

   <pe:inputNumber id="amount_value" value="#{dtDialogView.amount}" 
          thousandSeparator="\'" 
          decimalSeparator="."/> 
Смежные вопросы