2011-05-06 1 views
1

나는 외관상의 문제가 있습니다. 나는 응용 프로그램의 내부 논리에 대한 비공개 부울을 사용하여 구성 요소를 사용 중지 및 렌더링 - 다른 방법으로

private boolean production = true; 

(+ getter 및 setter)

을 사용하고 있습니다. 그리고 JSF에서 컴포넌트를 렌더링 또는 비활성화하기 위해 호출합니다. 예를 들어

<h:commandButton id="f1" action="#{bean.save}" type="submit" disabled="#{bean.production}"/> 

그리고 작동합니다. 그러나 그것은 나에게 약간 추한 것처럼 보인다.

동일한 기능을 수행하는 다른 방법이 있습니까?

은 좀 더 우아한 해결책을 찾고 있어요

+0

다르게 달성하고자하는 기능은 무엇입니까? 그것이 뒷받침 빈의 가치에 기초하여 구성 요소를 렌더링하거나 사용하지 못하게하는 경우 이것은 나에게 작업을 수행하는 표준 방법처럼 보이지만 어쩌면 더 큰 문제에 대한보다 우아한 해결책을 찾고있을 것입니다. –

+0

예, 좀 더 우아한 해결책을 찾고 있습니다. JSF는 private + getters와 setter를 원하고 다른 JAVA 클래스는 private STATIC + get, set을 원하기 때문에. 그래서 때로는 한 가지로 두 개의 부울을 사용해야 할 때가 있습니다. 조금 복잡해 지는데 ... – gaffcz

+0

생산은 무엇을 나타 냅니까? 앱 전체에서 정적 메서드를 통해 JNDI를 통해 전역 적으로 액세스 할 수 있는지 여부입니다. 그렇다면 bean의 private 멤버와 setter 메소드를 삭제하고 getProduction()을 변경하여 동일한 정적 메소드를 호출하고 값을 리턴하십시오. 그것이 당신이 가고있는 곳인지 확실하지 않습니다. –

답변

1

주셔서 감사합니다. JSF는 private + getters와 setter를 원하고 다른 JAVA 클래스는 private STATIC + get, set을 원하기 때문에. 그래서 때로는 한 가지 두 가지 논리 값을 사용해야하며

는 그냥 JSF 빈 게터 대리자를하자 ... 혼란을 조금 있습니다. 예 :

public boolean isProduction() { 
    return Settings.PRODUCTION; 
} 

이렇게하면 값이 포함 된 변수가 하나만 지정됩니다. 즉, Settings.PRODUCTION입니다. 범위가 요청 /보기 범위에서 분리하여 응용 프로그램 범위의 관리 Bean에 랩핑 할 수도 있습니다. 더구나, Map을 확장하고 값을 건설에 적용하면 disabled="#{settings['PRODUCTION']}"과 같은 것을 사용할 수 있습니다.

예.

@ManagedBean(name="settings", eager=true) 
@ApplicationScoped 
public class SettingsManager extends HashMap<String, Object> { 

    public SettingsManager() { 
     put("PRODUCTION", Settings.PRODUCTION); 
     put("DEBUG", Settings.DEBUG); 
     put("HOSTNAME", Settings.HOSTNAME); 
     // ... 
    } 

} 

는 JSF의 1.x에서 여전히 경우, 그 주석을 제거하고 faces-config.xml에 다음과 같이 매핑합니다.

<managed-bean> 
    <managed-bean-name>settings</managed-bean-name> 
    <managed-bean-class>com.example.SettingsManager</managed-bean-class> 
    <managed-bean-scope>application</managed-bean-scope> 
</managed-bean> 
+0

다시 한 번 감사드립니다.이 경우에 필요한 것입니다. – gaffcz

+0

내 질문에 대답 할 때 찾아 보았습니다. 그것! 감사합니다 – gaffcz

+0

당신은 오신 것을 환영합니다. – BalusC

관련 문제