2012-11-02 2 views
2

나는이 계산기 프로그램을 jsf와 클래스를 사용하여 만들었다. 나는 숫자를 전달하고 추가하기 위해 명령 단추를 사용했다. (포켓 계산기는 첫 번째 숫자가 아니라 계산기의 두 번째 숫자 일 것이다.) 여기 코드 샘플이있다. 내가 입력 된 값이 1 세 번 누르는 예를 들면 (1) 내가 을 갖는 appendedvalue은 항상 동일 상태에서 enteredvalue 하나로 도시 여기 111jsf append issue를 사용하는 계산기 앱

제공하므로 추가되어야 할

문제가 @ApplicationScoped 수업 중

<h:inputText value="#{mbcalculator.result}"/> 
    <h:commandButton value="1" action="#{mbcalculator.setNumber}"> 
     <f:setPropertyActionListener target="#{mbcalculator.enteredvalue}" 
      value="1" /> 


     //mbcalculator class 

    public String setNumber() { 
    appendNumber(enteredvalue); 

    return null; 
} 

public void appendNumber(String x) { 
    StringBuffer buffer = new StringBuffer(); 
    buffer.append(x + ""); 
    String str = buffer.toString(); 
    appendedvalue = Integer.parseInt(str); 
      result = appendedvalue; 


    System.out.println("enter"+enteredvalue); 
    System.out.println("append"+appendedvalue); 
    System.out.println("result"+result); 
} 
+2

최종 사용자의 관점이 아닌 개발자의 관점에서 "아무 것도하지 말 것"을 상세하게 설명하십시오. HTTP 요청이 전송 되었습니까? 호출되는 JSF 라이프 사이클의 단계는 무엇입니까? setter가 호출 되었습니까? 조치 메소드가 호출 되었습니까? 등등 – BalusC

+0

또한 어떤 로깅이나 오류가있는 경우 추가하십시오 – roel

+0

'doEquals()'메소드가 실행되는지 확인하기 위해'debugging' 또는'system.out'을 사용 했습니까? – prageeth

답변

0

appendNumber()에 추가하는 대신 전체 result을 재정의했습니다.

result = appendedvalue; 

실제로는 result에 추가하여 적절히 수정하십시오.

public void appendNumber(String x) { 
    result = Integer.parseInt(result + x); 
} 
+0

문자열 버퍼가 필요하지 않은 것 같아서 고맙습니다. – Meesh

+0

여러분 환영합니다. – BalusC