jspx를 템플릿 엔진으로 사용합니다. 우리는 $ {user.firstName} 또는 "$ {mail.subject}"와 같은 수백 개의 엘 표현식을 가진 화면을 가지고 있습니다.JSP/JSPX에서 HTML 엔티티를 탈출하십시오 : 존재하지 않아야하는 문제에 대한 해결책이 없습니까?
그리고이 HTML 코드는 기본적으로 이스케이프되지 않습니다. . - 필드에 "이 < 뭔가를 할 수 또는 것입니다 경우 화면이 실패합니다 우리는 항상 FN 사용할 수 있습니다 : escapeXml하지만 정말 지루한 모든 장소에서 그렇게을
1) 합니까 기본적으로 탈출 할 수있는 방법이있다. ?
내가 아는 유일한 방법은 (바람둥이에 대한 벽옥 같은) JSP 컴파일러를 해킹하는 것입니다.하지만 갈 수있는 방법이 아니다.
누군가가 엘의 이스케이프 HTML을 이제까지 필요로 할 수 있습니다 왜2) ? 보관 HTML 템플릿 외부 (예 : 데이터베이스)는 좋은 방법이 아닙니다.
3) 템플릿 엔진이 자동으로 처리해야한다고 확신합니다 (XSLT 에서처럼). 왜 사용자가 신경 써야합니까? 수동 이스케이프 (fn : escapeXml)는 SQL 매뉴얼 이스케이프 처리 (JDBC setParam 대신 사용)와 같은 냄새가납니다. 상용구 코드 및 SQL 삽입 (이 경우에는 사이트 간 스크립팅)을위한 좋은 장소입니다.
감사합니다! 우리는 struts + jspx를 사용합니다. 얼굴을 사용하고 싶지 않습니다. 다른 기술입니다. 1) 우리는 intellij 아이디어를 사용하고 모든 요소를 대체 할 수 있지만 우리는 이렇게하지 않습니다. 2) 이스케이프는 VIEW 문제이므로 데이터베이스가 아닌 뷰 계층에서 해결해야합니다. 3) 그렇게하려면 컨테이너를 해킹해야합니다. 내 사용자 정의 ELResolver를 등록 할 수는 있지만 체인에서 사용됩니다. 다른 모든 해결자를 비활성화하거나 감쌀 수 없습니다 (심지어 포인터도 필요하지 않습니다 - JSP EL API는 매우 나쁨). 4) 스트럿을 사용합니다. ServletDispatcher를 사용하여 jsp 뷰를 해결합니다. 우리는 그것의 EL과 함께 놀 수 있지만 그것이 작동하는지 모르겠다 –
그럼 총알을 물어. 그게 당신이 돈을받는 것입니다. 다음 번 공과를 배웁니다. – BalusC
제 생각에는 JSP를 사용하지 않고 Scalate, Velocity, Freemaker와 같은 다른 뷰 기술을 추가 할 수있는 다섯 번째 옵션이 있다고 생각합니다. 이러한 템플릿 언어의 경우 교차 절단 작업을 더 쉽게 수행 할 수 있습니다. –