간혹 게시판을 구현할때 내용을 화면에 뿌려주는 경우가 있는데 다른 css작업등과 같은 작업을 진행할때
html태그가 적용이 되지 않은 상태로 화면상 태그까지 글자로 인식되어 뿌려지는 경우가 있습니다.
ex> <p>안녕하세요</p>
이렇게 보여지게 되는데요 적용이 되어서 태그적용상태로 화면에 뿌려지면 좋지만 그렇지 않을경우
Controller에서 태그를 뺀 상태로 화면에 뿌려질수 있는 소스를 보여드리겠습니다.
먼저 기본적으로 Controller->Service->ServiceImpl->Dao->xml순으로 디비에 임시로 저장시켜놓은 리스트를
뽑아 오도록 하겠습니다.
Controller
@RequestMapping("/test")
public String test(ModelMap mo , NoticeVo noticevo) throws SQLException{
ArrayList<NoticeVo> mainnoticelist = mainservice.mainnoticelist(noticevo);
mo.addAttribute("noticekey", mainnoticelist);
return "test";
}
Service
public interface MainService {
public ArrayList<NoticeVo> mainnoticelist(NoticeVo noticevo) throws SQLException;
}
ServiceImpl
@Service
public class MainServiceImpl implements MainService{
@Autowired
private MainDao maindao;
public ArrayList<NoticeVo> mainnoticelist(NoticeVo noticevo) throws SQLException {
// TODO Auto-generated method stub
return maindao.mainnoticelist(noticevo);
}
}
DAO
@Repository
public class MainDao {
@Autowired
private SqlSession mainsql;
@SuppressWarnings({ "rawtypes", "unchecked" })
public ArrayList<NoticeVo> mainnoticelist(NoticeVo noticevo) throws SQLException {
// TODO Auto-generated method stub
return (ArrayList)mainsql.selectList("mainsql.mainnoticelist" , noticevo);
}
}
XML
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="mainsql">
<!-- 리스트 뽑기 -->
<select id="mainsql.mainnoticelist" parameterType="com.spring.vo.NoticeVo" resultType="com.spring.vo.NoticeVo">
SELECT * FROM NOTICETABLE ORDER BY NOTICE_NO DESC limit 5
</select>
</mapper>
리스트를 담아 jsp페이지에서 화면에 뿌려줄 경우 html태그가 적용되어 리스트가 출력되면 상관 없지만,
<p>테스트 입니다.</p><p><span style="color: rgb(255, 0, 0);">색상을 빨간색입니다.</span></p>
<p><span style="color: rgb(255, 239, 0);">이것은 노랑색 입니다.</span></p>
이런식으로 화면에 출력되는경우가 발생하게 되면 Controller에서 소스만 추가해 주시면 html태그가 지워진
일반 글자로 출력되게 됩니다.
for(NoticeVo vo : mainnoticelist) {
if(vo.getNotice_content() != null && !vo.getNotice_content().equals("") ) {
vo.setNotice_content(vo.getNotice_content().replaceAll("<(/)?([a-zA-Z]*)(\\s[a-zA-Z]*=[^>]*)?(\\s)*(/)?>", ""));
}
}
해당 소스를 출력한뒤에 실행화면을 보시면 일반 태그가 모두 삭제된 화면으로 출력이 됩니다.
감사합니다.
'JAVA개발' 카테고리의 다른 글
[JAVA 개발] jquery blockUI를 사용한 모달창(레이어팝업/다이얼로그창)출력 (0) | 2015.07.23 |
---|---|
[JAVA 개발] 쿠키(cookie)를 통한 아이디 저장 (1) | 2015.07.21 |
[JAVA 개발] jquery(제이쿼리) 회원가입 연락처 숫자만 입력 폼 (0) | 2015.07.17 |
[JAVA 개발] jquery(제이쿼리) keyup / text / html 이용한 회원가입 비밀번호 확인 체크폼 (0) | 2015.07.17 |
[JAVA 개발] jquery(제이쿼리) chang / prop 이용한 회원가입 이메일작성 폼 만들기 (0) | 2015.07.16 |