spring MVC 에러페이지 설정 : chichi-story.tistory.com/9?category=884464

위와 더불어 spring security 403 에러페이지는 따로 security xml 설정파일에서 적용해야함.

 

  • controller 생성
@RequestMapping(value = "/error/403", method = RequestMethod.GET)
public String error() {
	return "error/403";
}

 

  • security-context의 http 영역 내에 <security:access-denied-handler error-page="/error/403"/> 태그 작성
.....
<security:http auto-config="true" use-expressions="true">
  ......
  <security:access-denied-handler error-page="/error/403"/> <!-- error page 설정 -->
</security:http>

 

  • GET MAPPING 잡아준 url 화면 jsp 생성

   

  • 권한을 부여받지 않은 member가 admin 에 접근했을 때 에러 메세지 화면이 나타나는걸 확인

 

 

 

java poi excel 셀 스타일 설정

  • Font 설정

Font font = wb.createFont();
font.setFontName("바탕"); //폰트이름
font.setFontHeight((short)260); //폰트 size -> 260 = 13point
font.setBold(true); // Bold 설정

 

  • cell 너비(width) 설정

sheet.setDefaultColumnWidth(7); // sheet 전체 기본 너비설정
sheet.setColumnWidth(4, 2100); // 특정 cell 설정 => 5번째(e) cell 2100=7.63
sheet.setColumnWidth(7, 3400); // 7번째(h) cell 3400=12.63

 

 

  • cell style

CellStyle basicStyle = wb.createCellStyle(); //style선언
basicStyle.setFont(font); // 위에 선언한 font 적용
basicStyle.setAlignment(HorizontalAlignment.CENTER); // 가로 가운데 정렬
basicStyle.setVerticalAlignment(CellStyle.VERTICAL_CENTER); // 세로 가운데 정렬
basicStyle.setBorderTop(BorderStyle.THIN); // 셀 위 테두리 실선 적용
basicStyle.setBorderBottom(BorderStyle.THIN); // 셀 아래 테두리 실선 적용
basicStyle.setBorderLeft(BorderStyle.THIN); // 셀 왼쪽 테두리 실선 적용
basicStyle.setBorderRight(BorderStyle.THIN); // 셀 오른쪽 테두리 실선 적용
basicStyle.setWrapText(true); // 셀 크기에 맞추어 개행

 

 

 

MyBatis mapper 설정시 resultMap과 resultType값을 잘못 설정하게 되면

java.lang.IllegalArgumentException: Result Maps collection does not contain value for xxx 와 비슷한 에러가 발생

<select id="preView" parameterType="java.lang.String" resultMap="java.util.HashMap">
  select content from board where seq = #{seq}";
</select>

==> resultMap 을 resultType 으로

<select id="preView" parameterType="java.lang.String" resultType="java.util.HashMap">
  select content from board where seq = #{seq}";
 </select>

 

 

Mybatis mapper resultType HashMap

 

1. mapper resultType을 HashMap으로 설정

<select id="siteState" resultType="java.util.HashMap">    
	SELECT * FROM tableName
</select>

 

2. Controller 설정

HashMap<String, Object> map = admin_service.siteState();
System.out.println(map);

- Console로 확인

Spring MVC 에러 페이지 처리

1. web.xml에 코드 추가

<!-- error page -->
<error-page>
    <error-code>400</error-code>
    <location>/WEB-INF/views/error/400.jsp</location>
</error-page>
<error-page>
    <error-code>404</error-code>
    <location>/WEB-INF/views/error/404.jsp</location>
</error-page>
  • <error-code /> :  400, 404, 500 등 에러 코드 (정수)
  • <location /> :  에러페이지로 설정할 jsp 절대경로

 

2. 해당 경로에 jsp 파일 생성 (/WEB-INF/views/error/400.jsp)

 

 

 

Spring MVC 에러

원인 : controller에서 json으로 변환이 되지 않음.

No converter found for return value of type: class java.util.HashMap 해결 방법

 

pom.xml에 의존성 추가

<!-- jackson -->
<dependency>
  <groupId>com.fasterxml.jackson.core</groupId>
  <artifactId>jackson-core</artifactId>
  <version>2.9.2</version>
</dependency>
<dependency>
  <groupId>com.fasterxml.jackson.core</groupId>
  <artifactId>jackson-databind</artifactId>
  <version>2.9.2</version>
</dependency>

Spring MVC 에러

Handler dispatch failed; nested exception is java.lang.NoClassDefFoundError 해결 방법

 

 

pom.xml 에 의존성 추가

<dependency>
   <groupId>org.apache.httpcomponents</groupId>
   <artifactId>httpclient</artifactId>
   <version>4.5.2</version>
   <scope>runtime</scope>
 </dependency>

 

정상적으로 작동 완료 ~

1. pom.xml에 라이브러리 삽입

<!-- MySQL -->
<dependency>
	<groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>6.0.5</version>
</dependency>
 
<!-- MyBatis 3.4.1 -->
<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
<dependency>
  <groupId>org.mybatis</groupId>
  <artifactId>mybatis</artifactId>
  <version>3.4.1</version>
</dependency>
 
<!-- MyBatis-Spring -->
<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis-spring -->
<dependency>
  <groupId>org.mybatis</groupId>
  <artifactId>mybatis-spring</artifactId>
  <version>1.3.0</version>
</dependency>
 
<!-- Spring-jdbc -->
<!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->
<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-jdbc</artifactId>
  <version>${org.springframework-version}</version>
</dependency>
 
<!-- Spring-test -->
<!-- https://mvnrepository.com/artifact/org.springframework/spring-test -->
<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-test</artifactId>
  <version>${org.springframework-version}</version>
</dependency>

 

2.  root-context.xml 

   <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="com.mysql.cj.jdbc.Driver"></property>
        <property name="url" value="jdbc:mysql://URL:3306/sg?useUnicode=yes&amp;characterEncoding=utf8&amp;useSSL=false&amp;serverTimezone=UTC"></property>
        <property name="username" value="ID"></property>
        <property name="password" value="PASSWORD"></property>
    </bean> 

    <!-- mybatis SqlSessionFactoryBean -->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"></property>
        <property name="mapperLocations" value="/WEB-INF/database/*-mapper.xml" />
    </bean>
    
    <!-- mybatis -->
    <bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate"  destroy-method="clearCache">
        <constructor-arg name="sqlSessionFactory" ref="sqlSessionFactory"></constructor-arg> 
    </bean>
		

- WEB-INF 하위에 database 폴더 생성 : 데이터베이스 쿼리 파일(xml) 경로

 

+ Recent posts