2011-05-05 2 views
1

다른 마크 업이있는 패널이 있습니다. 나는 같은 자바 클래스를 재사용하고 다양한 변형을하고 싶다.
일부 패널에서는 일부 구성 요소가 누락되었지만 각 경우에 대해 구성 요소의 가시성을 설정하기 위해 Java 클래스를 변경하지 않으려합니다. 좀 지저분해질 수 있습니다. 마크 업에 누락 된 구성 요소가있는 경우 내 앱이 중단되지 않으면 서 동일한 Java 클래스를 다시 사용하고 싶습니다. 그래서 다음과 같이 생각합니다. 1 패널 클래스에 구성 요소를 추가 한 다음 마크 업에서 사용할 수 있습니까?

예컨대 :
다른 마크 업이지만 위젯의 동일한 Java 코드는 무엇입니까?

Java 
add(new Label("a","hello")); 
add(new Label("b","hi")); 
add(new Label("c","see ya")); 
add(new Label("d","good bye")); 

hello_1.hml 
<span wicket:id="a">xxx</span> 
<span wicket:id="b">xxx</span> 
<span wicket:id="c">xxx</span> 
<span wicket:id="d">xxx</span> 

hello_2.hml<br> 
<span wicket:id="a">xxx</span> 
<div wicket:id="d">xxx</div> 

hello_3.hml<br> 
<div wicket:id="a">xxx</div> 
<b wicket:id="c">xxx</b> 

hello_4.hml<br> 
<div wicket:id="a">xxx</div> 

내 질문은 분명하다 바랍니다.

답변

6

직접 질문에 대답하려면 : 아니오, Java와 HTML면이 정확히 일치해야합니다.

그러나 특정 유스 케이스에 따라 항상 방법이 있습니다.

  1. CSS 또는 스타일 속성에서 HTML 요소를 표시하지 않습니다.
  2. 선택적 비트를 렌더링하지 않으려면 조각을 사용하십시오.
  3. 상속 기능을 사용하면 더 많은 기능이 풍부한 패널로 간단한 패널을 확장 할 수 있습니다.
  4. Java 코드에서 구성 요소를 볼 수 없도록 설정합니다.

하지만 문제가 다소 의심 스럽다는 것을 인정해야합니다. 구성 요소를 신중하게 분리하면 전체 문제를 피할 수 있습니다. 그러나 시스템에 대해 더 많이 알지 못해도 알기가 어렵습니다.

1

변형에 따라 Java 계층에서 구성 요소를 추가하는 방법은 무엇입니까?

경우 ("4".equals (getVariation()) { 추가 (새로운 ComponentA ("A"));}