2015-01-08 4 views
1

내 HTML 페이지의 필드 값이 내 관리 Bean으로 전송되지 않습니다. 조치를 호출하면 값은 null입니다. 내 LoginBean.doAction 방법에관리 빈에서 입력 값이 업데이트되지 않습니다.

<form jsf:id="form"> 
    <fieldset> 
     <label> <span 
       class="block input-icon input-icon-right"> <input 
        type="text" class="span12" placeholder="Usuário" 
        jsf:id="usr" jsf:value="#{loginBean.user}" /> 
        <i class="icon-user"></i> 
      </span> 
     </label> <label> <span 
       class="block input-icon input-icon-right"> <input 
        type="password" class="span12" placeholder="Senha" 
        jsf:id="pwd" jsf:value="#{loginBean.password}" /> 
        <i class="icon-lock"></i> 
      </span> 
     </label> 

     <div class="space"></div> 

     <div class="clearfix"> 
      <button jsf:action="#{loginBean.doLogin()}" jsf:id="btn" 
        class="width-35 pull-right btn btn-small btn-primary"> 
       <i class="icon-key"></i> Login 
      </button> 
     </div> 

     <div class="space-4"></div> 
    </fieldset> 
</form> 
내가 넣어

syout 그것은 userpassword 속성에 대한 null 인쇄 : 내 HTML 코드입니다.

내가 잘못 했나요?

+0

정확히 어떤 주석을 관리되는'LoginBean' 클래스에 두었습니까? 증상은 명시 적 범위가 없으면 단지'@ Named'를 배치 한 것입니다. – BalusC

+0

내 관리 빈이 '@Named'와 '@RequestScoped'주석을 가지고 있습니다 –

+0

'@ RequestScoped' 주석을 가져온 패키지는 무엇입니까? 증상은 CDI 패키지에서 나온 것이 아님을 암시합니다. – BalusC

답변

1

덧글에 따라 java.sun.com 호스트를 기반으로 URI http://java.sun.com/jsf에 대한 XML 네임 스페이스 xmlns:jsf을 선언했습니다.

이전 Mojarra 버전에는 버그가 있습니다. <f:viewAction> 및 "HTML5 friendly markup"과 같은 새로운 JSF 2.2 특정 기능은 URI에 이전 java.sun.com 호스트가있는 XML 네임 스페이스에서 처음에는 사용할 수 없었지만 xmlns.jcp.org 호스트에만있었습니다. 이것은 Mojarra 2.2.1-2.2.2에서 수정되었습니다.

Java EE 7을 사용 중이므로 실제로 XML 네임 스페이스 URI에 java.sun.com 호스트를 포기하고 대신 xmlns.jcp.org을 사용해야합니다.

<html ... xmlns:jsf="http://xmlns.jcp.org/jsf"> 

즉,이 버그는 사용자가 다소 오래된 Mojarra 버전을 사용하고 있음을 나타냅니다. 업그레이드하는 것이 현명한 방법입니다. 현재 벌써 2.2.9에 있습니다. (줄 번호가 클래스 파일에 포함되지 않은 번거로운 버그가 있습니다. 따라서 IDE의 디버거에서 소스를 단계별로 실행할 수 없으므로 2.2.8을 선택하는 것이 좋습니다. 필수, 2.1.10에서 수정 예정).

+0

OP의 코드는 Mojarra 버전에서 제대로 작동합니까? 그렇지 않으면 컨테이너 관련 문제가 다른 곳에서 들릴 수 있습니까? 또한 DTD를 변경해야했습니다. GlassFish 4.1에서 Mojarra 2.2.8-02를 사용하는 데 도움이되는 것은 없습니다 (단 하나의 XHTML 파일 만 있고 PrimeFaces/OmniFaces조차없는 추가 종속성이없는 단순 새로 작성된 응용 프로그램입니다). – Tiny

+0

@Tiny : Tomcat의 Mojarra 2.2.8에서 테스트했습니다. 당신의'faces-config.xml'이 JSF 2.2를 준수합니까? – BalusC

+0

예 2.2와 관련된 다른 2.2 네임 스페이스와 버전 2.2 ('version = "2.2"')를 의미합니다. – Tiny

관련 문제