javascript
  • jsf-2
  • primefaces
  • 2012-06-16 4 views 0 likes 
    0

    관리 빈에 if 조건이 있습니다. 조건이 참일 때 경고를 표시하고 싶습니다. 나는 어떻게 그럴 수 있니? 예 :관리 빈에서 javascript 함수를 호출하는 방법은 무엇입니까?

    public void catInsert() 
         { 
          if(abr.searchCategoryByCategoryName(CategoryName)!=null){ 
        //    msg = "<div style = 'color:red'>CategoryName already exist!</div>"; 
        //    System.out.println(msg); 
    // i want alert here 
    
          }else 
          { 
          abr.addCategory(CategoryName); 
          CategoryName=""; 
          } 
         } 
    

    및 xhtml 페이지는 다음과 같습니다.

    <table class="nostyle"> 
           <tr> 
            <td align="right"> 
            <h:outputText value="Category Name:"></h:outputText> 
            </td> 
            <td> 
             <h:inputText id="txtcatname" value="#{categoryBean.categoryName}" required="true" requiredMessage="Enter category Name" > 
             </h:inputText> 
            </td> 
            <td ><h:message for="txtcatname" style="color: #df0000"></h:message></td>>    
           </tr> 
           <tr> 
            <td></td> 
            <td align="left"> 
             <h:commandButton id="submit" type="Submit" value="submit" action="#{categoryBean.catInsert()}" > 
             </h:commandButton> 
            </td> 
    
           </tr> 
          </table> 
    
    +0

    무엇이 문제입니까? 실제 상태는 어디입니까? – Sarfraz

    +0

    클라이언트가 알아 내기 위해 콩과 계속 얘기해야합니다. – jcolebrand

    +0

    질문이 업데이트되었습니다. 제게 해결책을주세요. – user1450369

    답변

    2

    개념상의 실수를 저지르고 있습니다. HTML/JS 코드는 컨트롤러에는 없지만보기에는 속합니다. 컨트롤러는 원하는 HTML/JS 코드 묶음을 생성해야한다는 것을 어떻게 든 알릴 수 있어야합니다.

    당신은 너무

    private boolean showCategoryNameAlert; 
    
    public void catInsert() { 
        if (abr.searchCategoryByCategoryName(categoryName) != null) { 
         showCategoryNameAlert = true; 
        } else { 
         abr.addCategory(categoryName); 
        } 
    } 
    
    public boolean isShowCategoryNameAlert() { 
        return showCategoryNameAlert; 
    } 
    

    그런데

    <h:outputScript rendered="#{categoryBean.showCategoryNameAlert}"> 
        alert("CategoryName already exist!"); 
    </h:outputScript> 
    

    와 같은 부울 속성을 설정하여, 당신은 왜 FacesContext#addMessage() 일반 JSF Validator<h:messages> 또는 어쩌면을 사용하지 않는 것이 할 수있는 입력란에? 자바 스크립트 경고를 표시하는 것은 soo 90 's이며 액션 메소드에서 입력 유효성 검사를 수행하는 것은 좋지 않습니다.

    관련 문제