독서하는 개발자's Blog

반응형

태그를 replace와 정규식을 이용하여 효율적으로 제거하는 방법


스크립트에서 로드 될 때, 원하는 곳의 id값을 가지고 replaceAll을 하려고 했지만,

에디터에서 url링크 추가를 하면 이상한 곳을 추가되는 바람에 실패.


DB에서 replace해서 jsp에 뿌려주려 했는데 이것도 mysql에서 버그인지 실패.


마지막, 자바에서 replace해서 jsp에 뿌려주기 성공!!


내가 한 방법은 일단 리스트에서 뿌리는 값을 담기위해 VO에 public List<String> tagCn; 입력(String값만)

여기서는 위 코드에 대한 설명

맨위에 tagCn은 이미 사용


그렇기 때문에 tagCn15라는 리스트 담을 그릇을 하나 더 만들고 B000015List에서 for문으로 돌린 값을 String형으로 받기위해 

getString사용 -> html 변수에 저장 -> add를 사용하여 tagCn15라는 그릇에 담기


그릇에 담기 전에

현재 html변수에는 ex) <p> 디비에 저장되어있는 데이터 값 </p> 

이런식으로 p태그가 있는채로 db데이터에 저장되어있다. (에디터를 사용했기때문에 db에 저장될때 p태그가 들어간다)

모든 태그를 제거한 텍스트만 뽑기위해서 replaceAll안에 [모든태그 제거 정규식]을 사용

태그제거된 값을 받은 tagCn15 그릇은 model.addAttribute에 담겨 tagCn15라는 이름으로 return 되는 곳에서 사용


혹시나 에디터를 사용하다가 p태그가 제거되지 않은채로 jsp에 뿌려진다면

위에 방법을 사용하여 깔끔하게 텍스트만 받을 수 있다.


하지만, jsp화면상 문제가 없이 태그를 숨긴채로 출력하고싶다. 하면

<c:out value="값" /> 이 안에 escapeXml이라 태그를 숨겨주는 친구가 있다.

이 친구를 <c:out value="값" escapeXml="false" /> 이렇게 넣어주면 태그는 숨겨지지않는다.

반대로 <c:out value="값" escapeXml="true" /> true로 넣어주면 태그는 숨겨진다.

반응형

공유하기

facebook twitter kakaoTalk kakaostory naver band