저는 PHP의 nl2br() 함수를 JSF2/Spring을 사용하여 현재 프로젝트에 가장 우아하게 통합하는 방법을 알아 내려고하고 있습니다. 내 모델 클래스에서 return text.replaceAll("\n","<br/>");
과 같은 것을 사용하여 게터를 쉽게 만들 수는 있지만 속하지 않는 곳에 관련 코드를 표시하는 것처럼 보입니다. 나는 내 데이터베이스에 실제 html 콘텐츠를 저장하는 것에 대해 동일한 감정을 가지고있다. 내가 가장 깨끗한 솔루션은 태그/EL을 사용하는 것 같아요,하지만 난 그냥 할 것 같았다 뭔가를 찾을 수 없습니다. 어떻게 이런 식으로 구현할 수 있니? 미리 감사드립니다. 어떤 힌트라도 높이 평가됩니다!MVF 패러다임을 위반하지 않고 JSF2에서 nl2br을 사용 하시겠습니까?
답변
사용하거나 CSS로 끝나는 것
<div style="white-space: pre">#{bean.text}</div>
또는 create a custom EL function 다음 이스케이프 처리되지 않음 (Facelets에서 암시 적으로 HTML 이스케이프 처리)
<div><h:outputText value="#{my:nl2br(bean.text)}" escape="false" /></div>
반드시 free of XSS이어야합니다.
글쎄, JSF는 웹 UI 프레임 워크입니다. 따라서 사용자에게 출력 할 것으로 예상되는 내용은 HTML로 종료됩니다 (단, 자바 스크립트 만 제외). 그래서 MVC에 중대한 위반이있는 것은 아닙니다. 어쩌면 당신은 봉투를 밀고 대체 대신에 <br/>
을 사용할 수 있습니다 \n
보다 일반적인 의미에서, 텍스트가 다른 줄/단락을 사용하면 더 유연한/표준 해결책으로 인해 텍스트를 다른 요소에 넣고 프리젠 테이션 로직이 처리하도록하십시오. 그래서, 대신
presentationPage.introductionText=Ipse Lorum ...sum.\nVini vidi vinci.
과 특성의 당신은 텍스트가 어떤 HTML을 포함하지 않는 것으로 가정
presentationPage.introductionText.par1=Ipse Lorum ...sum.
presentationPage.introductionText.par2=vini vidi vinci.
답변을 주셔서 감사합니다. 그러나 백엔드가 순수한 자바이기 때문에 HTML뿐만 아니라 모든 뷰 형식을 생성 할 수 있습니다. 당신이 제안한 솔루션은 가장 깨끗한 방법 인 것처럼 보이기 때문에 내가 한 일을 꽤 많이했지만, 프론트 엔드를 통해 내용을 편집 할 수 있다면 매우 좋은 선택은 아닙니다. – user871784
사용자 생성 된 콘텐츠, 나는 더 많은 정적 콘텐츠 응용 프로그램을 생각하고 있었다. 여러 인터페이스에서 액세스 할 수 있어야하는 사용자 코드를 사용하려면 어떤 방식으로 표준화해야하고 "클라이언트"인터페이스를 그대로 사용해야합니다. 페이지 나누기를위한'\ n'은 다른 솔루션만큼 좋으며 이해하기 쉽습니다. – SJuan76
고맙습니다. 현재는 정적 인 사이트 콘텐츠입니다.하지만 사용자 생성 콘텐츠 나 필요할 경우 어떤 것이 든 사용할 수있는 이런 종류의 표준 컨셉과 비슷한 것을 갖고 싶습니다. 하지만 고마워, 나에게 화제를 분명히하도록 분명히 도와 줬어! 건배 – user871784
- 1. JSF2에서 facelet1.1.15 (외부 facelet) 사용
- 2. JSF2에서 GET 매개 변수 사용
- 3. sharepoint 2007에서 상속을 위반하지 않고 고유 한 사용 권한을 할당하십시오.
- 4. JSF2에서 Bean 유효성 검사를 무시 하시겠습니까?
- 5. 컨벤션을 위반하지 않고 경로에서 id를 교체하십시오.
- 6. MVVM을 위반하지 않고 ListBox에 항목을 추가하는 방법
- 7. 코드를 위반하지 않고 Oracle 패키지를 관리하기위한 전략
- 8. Genshi에서 nl2br을 수행하는 방법은 무엇입니까?
- 9. WorkFlow를 사용하도록 패러다임을 변경하십시오.
- 10. 기본 OOP 규칙을 위반하지 않고 새로운 기능을 추가하십시오.
- 11. MVC 패턴을 위반하지 않고 캐싱 모델을 구현하는 방법은 무엇입니까?
- 12. PHP 메일러를 사용하여 nl2br을 사용할 수 없습니다.
- 13. MVVM 규칙을 위반하지 않고 타사 컨트롤에서 메서드를 호출하려면 어떻게해야합니까?
- 14. MVVM을 위반하지 않고 뷰에서 컨트롤의 새 인스턴스를 만드는 방법
- 15. 형식 안전을 위반하지 않고 호출자에게 불투명 한 객체를 반환하십시오.
- 16. MVVM 주체를 위반하지 않고 끌어서 놓기를 처리하는 방법은 무엇입니까?
- 17. 라이센스를 위반하지 않고 opensource 프로젝트를 포크하는 방법은 무엇입니까?
- 18. Zend Framework의 기본 동작을 위반하지 않고 테이블을 자동으로 결합
- 19. Twisted IRCClient - 클래스 메서드를 위반하지 않고 원시 데이터를 사용합니까?
- 20. 폴링하지 않고 Windows Form의 시계를 사용 하시겠습니까?
- 21. 디버그 퍼스펙티브로 전환하지 않고 aptana.log를 사용 하시겠습니까?
- 22. 저장소를 복제하지 않고 Git 로그를 사용 하시겠습니까?
- 23. 컴파일하지 않고 Flex에서 CSS를 사용 하시겠습니까?
- 24. didReceiveData를 호출하지 않고 connectionDidFinishLoading을 사용 하시겠습니까?
- 25. 참조를 추가하지 않고 웹 서비스를 사용 하시겠습니까?
- 26. JSF2에서 params로 리디렉션하는 방법은 무엇입니까?
- 27. JSF2에서 Ajax로 "도미노 효과"만들기
- 28. 시각적 패러다임을 사용한 PHP 구문
- 29. 두 개의 편집기 패러다임을 사용하여 작업
- 30. JSF2에서 리소스 라이브러리 버전을 지정하는 방법은 무엇입니까?
완벽한 감사합니다 !!! – user871784