2012-03-15 6 views
1

양식을 사용하지 않고 행을 데이터베이스로 업데이트하는 데 사용할 수있는 h:selectOneMenu을 만들 수 있습니다. 이런 식으로 뭔가 :JSF - 형식이없는 데이터베이스의 행을 업데이트하십시오.

      <h:selectOneMenu value="#{ApplicationController.setting['SessionTTL']}" onclick="#{ApplicationController.Updatesetting(SessionTTL)}"> 
           <f:selectItem itemValue="#{ApplicationController.setting['SessionTTL']}" itemLabel="#{ApplicationController.setting['SessionTTL']}" /> 
           <f:selectItem itemValue="two" itemLabel="Option two" /> 
           <f:selectItem itemValue="three" itemLabel="Option three" /> 
           <f:selectItem itemValue="custom" itemLabel="Define custom value" /> 
          </h:selectOneMenu> 

즉이 h:selectOneMenu의 값이 선택한 새 값으로 SQL 쿼리를 만드는 속성 onclick 전화 자바 방법을 변경합니다. 예가 있습니까?

빌며 피터

답변

1

는 아니, 형태없이 빈 액션 메소드를 호출 할 수 없습니다. 확실히 <h:form>이 필요합니다. 어떤 방식 으로든 작동하지 않는 onclick 접근 방식 대신 (JS는 서버가 아니라 클라이언트에서 실행됩니다) <f:ajax>이 필요합니다. 그것은 속성을 가지고있어 ajax 이벤트에서 호출 될 bean 액션 메소드를 지정할 수 있습니다.

<h:form> 
    <h:selectOneMenu value="#{ApplicationController.setting['SessionTTL']}"> 
     <f:selectItem itemValue="#{ApplicationController.setting['SessionTTL']}" itemLabel="#{ApplicationController.setting['SessionTTL']}" /> 
     <f:selectItem itemValue="two" itemLabel="Option two" /> 
     <f:selectItem itemValue="three" itemLabel="Option three" /> 
     <f:selectItem itemValue="custom" itemLabel="Define custom value" /> 
     <f:ajax listener="#{ApplicationController.Updatesetting('SessionTTL')}" /> 
    </h:selectOneMenu> 
</h:form> 

(그런데, 대문자로 메소드 이름 나쁜 이름 지정 규칙은, 내가 그것을 소문자로 좋을 것입니다 같은 관리 빈 이름에 적용) 할 수 있다면, 내가 좋겠

한 발 뒤로 물러나서 HTTP, HTML, CSS 및 JavaScript와 같은 기본적인 웹 개발 원칙을 배우십시오. JSF가 모든 HTML/CSS/JS 코드를 자동 생성하고 모든 HTTP 요청/응답 처리를 고려하는 구성 요소 기반 MVC 프레임 워크임을 제대로 이해해야합니다.

관련 문제