react에서 화면영역 프린트

  1. useRef사용하여 원하는 인쇄영역에 ref 잡아주기
const printRef = useRef();

<div ref={printRef}>
            <table style={{width:"100%", borderLeft: '#000 2px solid', lineHeight: '1.3', fontFamily: 'dotum, sans-serif', fontSize: '12px', borderTop: '#000 2px solid'}} className="tse_tbl" border={0} cellSpacing={0} cellPadding={8} width={620}>
              <tbody>
                <tr>
                  <td style={{borderBottom: '#000 1px solid', borderRight: '#000 2px solid'}} colSpan={3}>
                    <div style={{textAlign: 'center', paddingBottom: '20px', paddingLeft: '0px', paddingRight: '0px', paddingTop: '20px'}}><strong style={{fontSize: '30px'}}>휴가신청서</strong></div>
                    <table style={{lineHeight: '1.3', fontFamily: 'dotum, sans-serif', fontSize: '12px'}} className="tse_tbl" border={0} cellSpacing={0} cellPadding={0} width="100%">
                      <tbody>
                        <tr>
                                               ...
                                               ...
</div>

2. 이벤트를 통해 해당영역 인쇄 진행

<button onClick={printHandler}>인쇄하기</button>

const printHandler =()=>{
    let printContents = ReactDOM.findDOMNode(printRef.current).innerHTML;
    let windowObject = window.open('', "PrintWindow", "width=1000, height=800, top=100, left=300, toolbars=no, scrollbars=no, status=no, resizale=no");
    windowObject.document.writeln(printContents);
    windowObject.document.close();
    windowObject.focus();
    windowObject.print();
    windowObject.close();
  }

3. 결과확인

*** 추가 ***

1. 인쇄버튼 선택시 미리보기 창에서 멈추고 미리보기창에서 인쇄 또는 취소진행

2. 인쇄영역 머리글/바닥글 제거

3. 인쇄창에서 화면 전환시 자동으로 미리보기창 종료

4. 미리보기화면의 인쇄/취소 버튼 동적 추가/삭제

function App() {

  const printRef = useRef();

  const printHandler =()=>{
    const printContents = ReactDOM.findDOMNode(printRef.current).innerHTML;
    const windowObject = window.open('', "PrintWindow", "width=800, height=800, top=100, left=300, toolbars=no, scrollbars=no, status=no, resizale=no");
    windowObject.document.write(`
      <html>
        <head>
          <title>미리보기</title>
          <style>
            @media print {
              @page { 
                margin: 0; 
              }
              body {
                padding: 15mm;
              }
            }
          </style>
        </head>
        <body>
          ${printContents}
        </body>
      </html>
    `);
    windowObject.document.close();

    //버튼 동적 추가삭제 start
    const printButton = document.createElement("button");
    const cancleButton = document.createElement("button");
    printButton.innerHTML = "인쇄하기";
    cancleButton.innerHTML = "취소";
    printButton.style = "float: right; margin-bottom: 10px; margin-right: 5px";
    cancleButton.style = "float: right; margin-bottom: 10px;"

    //인쇄하기 click
    printButton.onclick =()=>{
      printButton.remove();
      cancleButton.remove();
      windowObject.print();
    }

    //취소 click
    cancleButton.onclick =()=>{
      printButton.remove();
      cancleButton.remove();
      windowObject.close();
    }

    const firstElement = windowObject.document.body.firstChild;
    windowObject.document.body.insertBefore(cancleButton, firstElement);
    windowObject.document.body.insertBefore(printButton, firstElement);

    //버튼 동적 추가삭제 end

    windowObject.focus();

    //인쇄화면에서 이동
    windowObject.onafterprint =()=>{
      printButton.remove();
      cancleButton.remove();
      windowObject.close();
    }
    
  }

  return (
    <div className="App">
        <div style={{minHeight:"800px", width:"800px"}}>
          <div style={{display:"flex", justifyContent:"center"}}>
            <Header />
          </div>
          <div style={{float:"right", marginBottom:"10px"}}>
            <button onClick={printHandler}>인쇄</button>
          </div>
          <div ref={printRef} id="printContent">
            <Print1 /> // 문서양식 component
          </div>
          <div style={{fontSize:"12px", marginTop:"5px"}}>
            <Footer />
          </div>
        </div>
    </div>
  );
}

export default App;

'react' 카테고리의 다른 글

SpringBoot - React CORS Error 해결  (0) 2023.05.24
Breadcrumb 만들기  (0) 2023.05.16
react 전체 선택/해제 구현  (0) 2023.05.16
네이버 스마트에디터(2.0) 사용하기  (0) 2023.05.16
React hooks, jsx 문법  (0) 2023.05.15
// 체크박스 이벤트
  const [checkedList, setCheckedList] = useState([]);

  // 개별체크
  const checkedInputs =(checked, item)=>{
    if(checked){
      setCheckedList([...checkedList, item]);
    } else if (!checked) {
      setCheckedList(checkedList.filter(el => el !== item));
    };
  }

  // 전체체크
  const allCheck =(checked)=>{
    if(checked){
      const idArray =[];
      users.slice(offset, offset + cntPerPage).forEach((el) => idArray.push(el.userId));
      console.log(idArray);
      setCheckedList(idArray);
    }else{
      setCheckedList([]);
    }
  }
// 전체선택
<th style={{width:"5%"}}><input type={"checkbox"} id={'checkAll'} onChange={(e) => allCheck(e.target.checked)} checked={checkedList.length === users.slice(offset, offset + cntPerPage).length ? true : false}/></th>

//개별선택
<td><input type={"checkbox"} name={'checked'+index} id={user.userId} onChange={(e)=> {checkedInputs(e.target.checked, e.target.id)}} checked={checkedList.includes(user.userId) ? true : false}/></td>

>>> 테이블에서 보여주는 개수만큼 잘라주기위해 slice를 사옹해서 전체선택을 끊어주엇다.

'react' 카테고리의 다른 글

Breadcrumb 만들기  (0) 2023.05.16
페이지 인쇄 구현  (0) 2023.05.16
네이버 스마트에디터(2.0) 사용하기  (0) 2023.05.16
React hooks, jsx 문법  (0) 2023.05.15
React 사용(in VSCode)  (0) 2023.05.15

1. 네이버 스마트에디터 github zip파일 받아온뒤 압축풀기

2. src/main/webapp 폴더하위에 smarteditor 폴더 복사

3. src 하위의 WEB-INF / jsp 폴더에 editor.jsp 생성

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> 
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<script type="text/javascript" src="smarteditor2/js/HuskyEZCreator.js" charset="utf-8"></script>
<script type="text/javascript" src="//code.jquery.com/jquery-1.11.0.min.js"></script>
<title>editorPage</title>
</head>
<body>
<div class="fr-box fr-basic fr-top" role="application">
	<textarea name="notice_content" id="smartEditor" style="width: 100%; min-height: 400px;">
		<c:forEach items="${documentList }" var="dl">
			<c:if test="${dl.id eq id}">
				${dl.formSrc } // react에서 문서양식번호를 전송받아 화면에 출력
			</c:if>
		</c:forEach>
	</textarea>
</div>
</body>

<script type="text/javascript">

	$("#smartEditor").hide(); //소스코드 출력안되게 막기
	
	var oEditors = [];
	
	nhn.husky.EZCreator.createInIFrame({
		oAppRef : oEditors,
		elPlaceHolder : "smartEditor", //저는 textarea의 id와 똑같이 적어줬습니다.
		sSkinURI : "smarteditor2/SmartEditor2Skin.html", //경로를 꼭 맞춰주세요!
		fCreator : "createSEditor2",
		htParams : {
			// 툴바 사용 여부 (true:사용/ false:사용하지 않음)
			bUseToolbar : true,
	
			// 입력창 크기 조절바 사용 여부 (true:사용/ false:사용하지 않음)
			bUseVerticalResizer : true,
	
			// 모드 탭(Editor | HTML | TEXT) 사용 여부 (true:사용/ false:사용하지 않음)
			bUseModeChanger : false
		},
	});
</script>
</html>

4. controller에서 jsp파일 매핑해주기

@Controller
public class EditorController {
	
	private static final Logger log = LoggerFactory.getLogger(EditorController.class);
	
	@Autowired
	private ApprovalService approvalService;
	
	@GetMapping("/editor.do")
	public String editorPage(@RequestParam("id") String id, Model model) {
		log.info("id   :   {}", id);
		
		List<DocumentVO> documentList = approvalService.getApprovalForm();
		model.addAttribute("id", id);
		model.addAttribute("documentList", documentList);
		
		return "editor";
	}

}

5. 리엑트에서 iframe 사용해서 jsp 호출

<tr>
  <th className="sTh">문서내용</th>
  <td colSpan={2} className="sTd">
    <select className="sInput" style={{ float:"right", width:"200px", marginBottom:"10px"}}>
      <option>선택</option>
    </select>
    <iframe
        title='smartEditor2'
        //문서양식번호 전송
        src={'http://localhost:8080/editor.do?id=' + form} 
        style={{width:"100%", height:"500px"}}  
        frameBorder={"0"}
    />
  </td>
</tr>

5. 결과확인

'react' 카테고리의 다른 글

Breadcrumb 만들기  (0) 2023.05.16
페이지 인쇄 구현  (0) 2023.05.16
react 전체 선택/해제 구현  (0) 2023.05.16
React hooks, jsx 문법  (0) 2023.05.15
React 사용(in VSCode)  (0) 2023.05.15

암호화가 필요한 패스워드 같은 데이터를 저장할때 암호화를 진행한다.

  1. SHA256 class 파일 생성
package com.common;

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class SHA256 {

    public String encrypt(String text) throws NoSuchAlgorithmException {
        MessageDigest md = MessageDigest.getInstance("SHA-256");
        md.update(text.getBytes());

        return bytesToHex(md.digest());
    }

    private String bytesToHex(byte[] bytes) {
        StringBuilder builder = new StringBuilder();
        for (byte b : bytes) {
            builder.append(String.format("%02x", b));
        }
        return builder.toString();
    }

}

2. 백엔드 Service(ServiceImpl)에서 데이터 insert 시 코드 추가

▼ 기존 코드

// 사용자 등록 처리
	@Override
	public int userReg(UserVO user) {
		return cmnMapper.userReg(user);
	}

▼ 변경 코드

// 사용자 등록 처리
	@Override
	public int userReg(UserVO user) throws NoSuchAlgorithmException {
		SHA256 sha256 = new SHA256();
		user.setUserPw(sha256.encrypt(user.getUserPw()));
		return cmnMapper.userReg(user);
	}

3. 결과 확인

'JAVA' 카테고리의 다른 글

데이터 암/복호화 (AES256)  (0) 2023.05.16
el, jstl  (0) 2023.05.15
Java-Jsp Driver로딩 및 DTO Bean  (0) 2023.05.15
Jsp-Java JDBC 연결  (0) 2023.05.09
매서드(method), 상속, final  (0) 2023.04.17

1. github에 repository 생성

2. 프로젝트 폴더 우클릭 하여 Git Bash Here 선택

3. 명령어 입력

*** 중간에 git status 입력어를 사용해서 git 상태 확인 해주자!!

1)

git config --global user.name "유저명"
git config --global user.email "유저이메일"

2)

git init

3)

git add "파일명"
// 전체선택을 원할경우 . 사용

4)

git commit -m "메세지 입력"

5)

git remote add origin "github 주소"

6)

git checkout -b '사용(생성)할 branch명'
// 처음 업로드가 아닐경우 해당 방법으로 새로운 브랜치를 생성하여 해당 브랜치로 이동
// 처음 업로드일 경우 해당 작업 진행하지않고 main으로 바로 push 진행

7)

git push -u origin "사용할 branch명"
// 처음 업로드시 main으로 push하고 이후 작업시 새로운 브랜치 생성하여 해당 브랜치로 push

8) ** push 오류 발생시

//git에 read me 파일이 프로젝트 폴더에 존재하지 않아 오류가 발생하기 때문에 pull로 해당 자료를 가져온다.
//오류발생할 경우 사용
git pull origin "동기화할 branch"

3. github로 이동해서 push 확인

>>> 해당 branch로 이동하면 업로드된 모습을 볼수 있다.

1. dto / service / mapper 세팅

>>> 위와같은 구조로 패키지를 구성하였다

2. pom.xml에 오라클 의존성 추가

>>> egov에서는 기본적으로 hdsqldb를 사용하기 때문에 기본적으로 작성되어 있는 부분 주석처리 후 oracle 주석처리 제거

<dependency>
            <groupId>com.googlecode.log4jdbc</groupId>
            <artifactId>log4jdbc</artifactId>
            <version>1.2</version>
            <exclusions>
                <exclusion>
                    <artifactId>slf4j-api</artifactId>
                    <groupId>org.slf4j</groupId>
                </exclusion>
            </exclusions>
        </dependency>
        
        <dependency>
			<groupId>org.apache.commons</groupId>
			<artifactId>commons-dbcp2</artifactId>
			<version>2.4.0</version>
		</dependency>

        <dependency>
            <groupId>ojdbc</groupId>
            <artifactId>ojdbc</artifactId>
            <version>6</version>
            <scope>system</scope>
            <systemPath>${basedir}/src/main/webapp/WEB-INF/lib/ojdbc6.jar</systemPath>
        </dependency>
	</dependencies>
[출처] egovframework - oracle 연동|작성자 cubha

>>> 위와같은 구조로 변경 (*** 주석제거시 dependency에 오류가 발생하는데 version과 jar파일의 파일명을 위처럼 일치 시켜준 뒤 인터넷에 검색해서 jar 파일 다운받고 WEB-INF 하위 lib 폴더에 삽입 ***)

3. context-datasource 수정

>>> resources/egov/spring 하위의 context-datasource 파일 수정

>>> 사용할 db부분 제외하고 전부 삭제하고, 자신 db와 일치시켜준다.

▼ 기존

▼ 변경

<!-- oracle (POM에서 commons-dbcp, ojdbc(라이센스 사항으로 별도로 배포되지 않음) 관련 라이브러리 설정) -->
    <bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close">
        <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/>
        <property name="url" value="jdbc:oracle:thin:@localhost:1521:orcl" />
        <property name="username" value="syinetesh"/>
        <property name="password" value="syineteshpw"/>
    </bean>
[출처] egovframework - oracle 연동|작성자 cubha

4. egov/sqlmap/oracle 하위에 있는 sql-mapper-config 수정 (확실하지않음)

>>> 기존에 작성되있는 부분을 본인의 vo 또는 dto 경로로 변경한다

▼ 기존

▼ 변경

<configuration>
    <typeAliases>
		<typeAlias alias="egovMap" type="org.egovframe.rte.psl.dataaccess.util.EgovMap"/>
		<typeAlias alias="UserDTO" type="com.test.esh.dto.UserDTO"/>
		<typeAlias alias="DeptDTO" type="com.test.esh.dto.DeptDTO"/>
		<typeAlias alias="PositionDTO" type="com.test.esh.dto.PositionDTO"/>
		<typeAlias alias="RankDTO" type="com.test.esh.dto.RankDTO"/>
    </typeAliases>
</configuration>
[출처] egovframework - oracle 연동|작성자 cubha

5. 데이터 전송을 위한 mapper, service, vo(dto) 등을 작성

>>> getter, setter만 사용하기때문에 dto로 작성하였으며, serviceimpl의 필요성을 못느껴서 그냥 service만 작성하였다.

▼ controller

@Controller
@RequestMapping("/user")
public class UserController {
	
	private static final Logger log = LoggerFactory.getLogger(UserController.class);
	
	private final UserService userService;
	
	public UserController(UserService userService) {
		this.userService = userService;
	}
	
	// 사용자 목록 조회
	@GetMapping("/userList.do")
	public String getUserList(Model model) {
		List<UserDTO> userList = userService.getUserList();
		model.addAttribute("userList", userList);
		System.out.println("**Controller!!");
		log.info("userList  :  {}", userList);
		return "user/userList";
	}
[출처] egovframework - oracle 연동|작성자 cubha

▼ service

@Service("UserService")
public class UserService {
	
	private static final Logger log = LoggerFactory.getLogger(UserController.class);
	
	private final UserMapper userMapper;
	
	public UserService(UserMapper userMapper) {
		this.userMapper = userMapper;
	}
	
	// 사용자 목록 조회
	public List<UserDTO> getUserList(){
		List<UserDTO> userList = userMapper.getUserList();
		System.out.println("**Service!!");
		log.info("userList  :  {}", userList);
		return userList;
	}
}
[출처] egovframework - oracle 연동|작성자 cubha

▼ mapper(.java)

@Mapper("UserMapper")
public interface UserMapper {
	
	// 사용자 목록 조회
	public List<UserDTO> getUserList();

}
[출처] egovframework - oracle 연동|작성자 cubha

 

▼ mapper(.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="com.test.esh.mapper.UserMapper">

	<resultMap id="UserResultMap" type="UserDTO">
		<result property="userId" 			column="USER_ID"/>
		<result property="userPw" 			column="USER_PW"/>
		<result property="userName" 		column="USER_NAME"/>
		<result property="userDept" 		column="USER_DEPT"/>
		<result property="userPosition" 	column="USER_POSITION"/>
		<result property="userRank" 		column="USER_RANK"/>
		<result property="userPhone" 		column="USER_PHONE"/>
		<result property="userHomePhone" 	column="USER_HOME_PHONE"/>
		<result property="userAddr"			column="USER_ADDR"/>
		<result property="userEmail" 		column="USER_EMAIL"/>
	</resultMap>
	
	<select id="getUserList" resultMap="UserResultMap">
		SELECT
		    USER_DEPT,
		    USER_RANK,
		    USER_POSITION,
		    USER_NAME,
		    USER_EMAIL,
		    USER_PHONE
		FROM TB_USER
	</select>

</mapper>
[출처] egovframework - oracle 연동|작성자 cubha

6. 연결확인

>>> userList.do 경로로 가면 컨트롤러를 통해 log가 출력되는걸 확인할수있다!!!!

'egov' 카테고리의 다른 글

Egov - jsp tiles 사용  (0) 2023.05.15
Egov(전자정부 프레임워크)  (0) 2023.05.15

*** tiles란 레이아웃을 고정시키고 내부의 contents부분을 수정할수 잇는걸 뜻한다.

1. pom.xml에 dependency 추가

<!--  tiles 시작 -->
        <dependency>
            <groupId>org.apache.tiles</groupId>
            <artifactId>tiles-extras</artifactId>
            <version>3.0.8</version>
        </dependency>
        <dependency>
            <groupId>org.apache.tiles</groupId>
            <artifactId>tiles-servlet</artifactId>
            <version>3.0.8</version>
        </dependency>
        <dependency>
            <groupId>org.apache.tiles</groupId>
            <artifactId>tiles-jsp</artifactId>
            <version>3.0.8</version>
        </dependency>
        <!-- tiles -->

>>> 이후 프로젝트 우클릭 > Maven > Update Project로 프로젝트 업데이트 진행

2. dispather-servlet 설정

해당파일의 설정을 변경해준다

>>> 초기설정

<bean class="org.springframework.web.servlet.view.UrlBasedViewResolver" p:order="1" 
          p:viewClass="org.springframework.web.servlet.view.JstlView"
          p:prefix="/WEB-INF/jsp/" p:suffix=".jsp"/>

>>> 변경설정

<!-- tiles 설정 -->
    <bean id="tilesViewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver">
        <property name="viewClass" value="org.springframework.web.servlet.view.tiles3.TilesView" />
        <property name="order" value="1" />
    </bean>
    <bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles3.TilesConfigurer">
        <property name="definitions">
            <list>
                <value>/WEB-INF/tiles/tiles-layout.xml</value>
            </list>
        </property>
    </bean>
    <!--/tiles  -->
    <bean class="org.springframework.web.servlet.view.UrlBasedViewResolver" p:order="2" 
          p:viewClass="org.springframework.web.servlet.view.JstlView"
          p:prefix="/WEB-INF/jsp/" p:suffix=".jsp"/>

>>> 경로변경 및 p:order 1 -> 2로 변경

3. WEB-INF 폴더 하위에 tiles 폴더 및 파일 생성하기

>>> tiles.xml 파일 (아래 코드 메뉴탭타일즈 부분에 추가로 header, footer등 추가해서 컴포넌트화 가능)

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE tiles-definitions PUBLIC "-//Apache Software Foundation//DTD Tiles Configuration 2.1//EN" "http://tiles.apache.org/dtds/tiles-config_2_1.dtd">
 
<tiles-definitions>
    <!-- 메뉴 탭 타일즈 -->
    <definition name="layouts-tiles"	template="/WEB-INF/tiles/tiles-layout.jsp">
        <put-attribute name="body"		value=""/>
    </definition>
 
    <definition name="*/*" extends="layouts-tiles">
        <put-attribute name="body" value="/WEB-INF/jsp/{1}/{2}.jsp" />
    </definition>
 
</tiles-definitions>

>>> tiles.jsp파일 (아래 코드처럼 taglib로 타일즈를 적용시키고 레이아웃을 디자인한후 tiles태그를 사용해서 컨텐츠(body)부분을 작성해둔다. 그러면 이후 추가로 작업되는 페이지에서는 body부분만 작성된다.)

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<%@ taglib uri="http://tiles.apache.org/tags-tiles"  prefix="tiles"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />

                               //타일즈 적용할 레이아웃...//

		 <!-- Page content wrapper-->
            <div id="page-content-wrapper">
                <div class="container-fluid">
                   <div id="body"><tiles:insertAttribute name="body"/></div>
                </div>
            </div>
		
	</div>
</body>
</html>

>>> 위 파일처럼 layout에 전부 작성할수도 있지만, component화 시켜서 아래방식처럼 작성할 수도 있다.

>>> xml 파일
?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE tiles-definitions PUBLIC "-//Apache Software Foundation//DTD Tiles Configuration 2.1//EN" "http://tiles.apache.org/dtds/tiles-config_2_1.dtd">
 
<tiles-definitions>
    <!-- 메뉴 탭 타일즈 -->
    <definition name="layouts-tiles"         template="/WEB-INF/tiles/tiles-layout.jsp">
        <put-attribute name="loadFile"        value="/WEB-INF/tiles/inc/loadFile.jsp" />
        <put-attribute name="header"           value="/WEB-INF/tiles/inc/header.jsp" />
        <put-attribute name="left"            value="/WEB-INF/tiles/inc/left.jsp" />
        <put-attribute name="body"           value=""/>
        <put-attribute name="footer"        value="/WEB-INF/tiles/inc/footer.jsp" />
    </definition>
 
    <definition name="*/*" extends="layouts-tiles">
        <put-attribute name="body" value="/WEB-INF/jsp/{1}/{2}.jsp" />
    </definition>
 
</tiles-definitions>


>>> jsp 파일
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="http://tiles.apache.org/tags-tiles"  prefix="tiles"%>
<!DOCTYPE html>
<html>
<head>
    <tiles:insertAttribute name="loadFile"/>
</head>
<body>
<div id="wrap">
 
    <div id="nav"><tiles:insertAttribute name="header"/></div>
    <div id="left"><tiles:insertAttribute name="left"/></div>
    <div id="body"><tiles:insertAttribute name="body"/></div>
    <div id="footer"><tiles:insertAttribute name="footer"/></div>
 
</div>
</body>
</html>

>>> 추가로 xml 파일의 extends 앞단의 name에 */*.jsp 등의 접미사를 사용해서 해당 파일에만 tiles를 적용시킬수도 있다. (controller의 return 부분에 동일한 접미사를 적용한다)

4. 작성된 타일즈 확인

>>> spring과 spring boot에서의 적용법은 다르니 해당 프로젝트 작성시에는 찾아서 해보자!!

'egov' 카테고리의 다른 글

Egov - oracle 연동  (0) 2023.05.16
Egov(전자정부 프레임워크)  (0) 2023.05.15

2. 설치된 eclipse를 구동하여 project 생성

>>> egov web 프로젝트 생성한다. 생성시 example 파일도 함께 생성 (*boot로 작업중)

3. 프로젝트 context root 확인

>> 생성한 프로젝트 name과 context root를 동일하게 맞춰준다.

>> 프로젝트 property > web project setting에서 변경

>> 기본적으로는 맞춰져있음

4. 서버 설정

>> 설치된 tomcat을 서버로 지정해준다

5. 실행해보기

>> Alt + P + N + Enter로 프로젝트 클린 후 프로젝트 run on server선택하여 프로젝트 실행 확인

>> 해당 프로젝트 및 폴더 삭제 > sqlmap의 example 폴더를 사용하는 db명으로 변경 > 해당 폴더명에 관련된 파일 수정

> 프로젝트 패키지명 수정

> 패키지명 경로와 관련된 파일 수정

위의 블로그 보고 자세히 해당 작업 진행하자!!

*** 위에 잘못보고햇다가 너무많이헤멧음.. *같은 작은부분 잘확인하자 ***

7. jsp파일생성

>>> 해당경로에 main.jsp 파일 생성

8. controller 생성

>>> 위와같은 형태로 패키지를 구성하고 메인컨트롤러를 잡아서 main.jsp 출력해보자

!!!!성

*** boot로 작업시 페이지 새로고침이 안되기 때문에 아래 사항을 적용해야한다 ***

1. Maven 의존성 추가

<dependency>

  <groupId>org.springframework.boot</groupId>

  <artifactId>spring-boot-devtools</artifactId>

  <optional>true</optional>

</dependency>

2. application.properties 추가

spring.devtools.livereload.enabled=true

'egov' 카테고리의 다른 글

Egov - oracle 연동  (0) 2023.05.16
Egov - jsp tiles 사용  (0) 2023.05.15

+ Recent posts