패널과 달력에 테두리를 추가하는 리치페이스를 어떻게 중지합니까?

StackOverflow https://stackoverflow.com/questions/622891

문제

나는 대부분의 프리젠테이션 작업을 처리하기 위해 사용자 정의 Richfaces 스킨을 사용하고 싶습니다.불행히도 richfaces는 달력 구성 요소의 모든 셀 주위와 각 패널 주위에 테두리를 렌더링합니다.국경 없는 개방형 그리드에 요일 번호 사이트가 표시되도록 해당 기능을 끄고 싶습니다.달력 컨트롤의 스킨이나 속성을 사용하여 이를 수행할 수 있는 확실한 방법은 없습니다.

맞춤 CSS를 사용할 수 있지만 나는 리치페이스로 생성된 스타일시트에서 테두리 관련 속성을 완전히 제거하기 위해 프레임워크를 사용하는 것을 선호합니다. 프레임워크에 맞서 작업하는 대신 추악한 CSS를 사용하여 모든 것을 재정의합니다.

그렇다면 리치페이스가 패널과 달력에 테두리를 추가하는 것을 어떻게 중지합니까?


이 사람은 비슷한 문제

도움이 되었습니까?

해결책

버전 3.3.0.GA부터는 테두리 및 배경에 대한 CSS 렌더링을 중지하도록 리치페이스에 요청할 수 없습니다.내장된 스타일시트(richfaces-ui-3.3.0.GA.jar의 일부인 org.richfaces.renderkit.html.css에 포함된 스타일시트)의 각 속성을 재정의해야 합니다.

플러그 앤 스킨 일반적인 기술을 사용하여 사용자 정의 CSS를 추가하는 것처럼 이를 수행하는 데 필요한 기능을 제공하지만 다음과 같이 추상 색상 정의를 참조하여 누락된 배경을 보완할 수 있으므로 플러그 앤 스킨이 더 좋습니다.

<u:style name="color" skin="abstractColorName" />

다음 CSS 속성은 테두리 및 배경 관련 속성을 빠르게 중화하는 데 유용합니다.

border: none;
background: transparent;

플러그 앤 스킨을 시작하려면 다음 Maven2 명령 시퀀스를 사용할 수 있습니다.

mvn archetype:generate -DarchetypeGroupId=org.richfaces.cdk -DarchetypeArtifactId=maven-archetype-plug-n-skin -DarchetypeVersion=3.3.0.GA -DartifactId=fil-skins -Dpackage=com.feelitlive.richfaces -DgroupId=com.feelitlive.server -Dversion=0.0.1-SNAPSHOT -DarchetypeRepository=http://repository.jboss.com/maven2/
cd fil-skins
mvn cdk:add-skin -Dname=fil -Dpackage=com.feelitlive.richfaces.skins

불행하게도 Eclipse 플러그인은 jboss 저장소에서 원형을 찾을 수 없기 때문에 이는 명령줄에서 수행하는 것이 가장 좋습니다(다른 IDE가 이를 더 잘 처리할 수 있습니다).프로젝트에 맞게 ArtifactId, groupId, 패키지, 버전 및 이름 속성을 변경해야 합니다.여러 스킨 정의를 보유하기 위한 아티팩트의 범위를 반영하는 아티팩트 및 패키지 이름을 선택하십시오.


비록 많은 작업이기는 하지만 일반 형식인 xxxBackgroundEnabled 및 xxxBorderEnabled로 스킨 속성에 대한 지원을 추가하여 사례별로 테두리 및 배경 CSS의 렌더링을 끄는 것이 가능할 것입니다.

org.richfaces.renderkit.html.css의 xcss 파일을 패치하려면 richfaces 팀과 협력해야 합니다.또한 XCSS JSF 태그 라이브러리(XCSS 파일에서 http:/jsf.exadel.com/template/util 또는 http:/jsf.exadel.com/template으로 식별됨) 중 하나에 일종의 조건부 출력 기능이 필요합니다. XCSS 파일에서 CSS 속성 그룹을 래핑하는 데 사용할 것으로 예상됩니다.

리치페이스를 수정한 경우 모든 스킨의 속성 파일에서 논란의 여지가 있는 CSS 렌더링을 비활성화할 수 있습니다.

다른 팁

부르는 피부가 있습니다 plain 그것은 그것에 거의 첨부 된 스타일이 없습니다.

여기에 있습니다 문서에서 발췌:

피부 '평범한'은 3.0.2 버전에서 추가되었습니다. 매개 변수가 없습니다. Richfaces 구성 요소를 자체 스타일을 가진 기존 Projecst에 포함시켜야합니다.

추가하여 활성화 할 수 있습니다

<context-param>
    <param-name>org.richfaces.SKIN</param-name>
    <param-value>plain</param-value>
</context-param>

~로 web.xml.


또한 리치 페이스를 방해하여 스타일을 전혀로드 할 수 있습니다.

<context-param>
     <param-name>org.richfaces.LoadStyleStrategy</param-name>
     <param-value>None</param-value>
</context-param>

설정 web.xml.

그러나 그 이후로 조심하십시오 Jboss Portlet Bridge 1.0.0에서는 작동하지 않습니다.

Richfaces에는 Skinnablity라는 피부 시스템이 있습니다. 스키질 성은 표준 CSS의 높은 수준의 확장입니다. 응용 프로그램에서 사용할 자신의 스킨 파일을 만들 수 있습니다 (JBOSS 문서).

Richfaces-IMPL JAR에서 폴더 /메타 인프 /스킨에는 모든 스킨 파일 (.skin.properties)이 포함되어 있습니다. 하나를 복사하고 이름을 바꾸고 원하는 것을 수정하십시오. 항아리를 재건해야합니다.

또는

당신은 사용할 수 있습니다 플러그 -N- 스킨 내가 전에 시도한 적이 없지만 당신이하려는 일에도 효과가있는 것처럼 보이는 Richfaces의 기능.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top