728x90
스프링에서 첨부파일을 보낼때는 servlet-context를 이용한다.
servlet-context.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns="http://www.springframework.org/schema/mvc"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:beans="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/mvc https://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">
//!-- DispatcherServlet Context: defines this servlet's request-processing infrastructure -->
//!-- Enables the Spring MVC @Controller programming model -->
<annotation-driven />
//<!-- Handles HTTP GET requests for /resources/** by efficiently serving up static resources in the ${webappRoot}/resources directory -->
<resources mapping="/**" location="/resources/" /> //mapping의 주소가 첨부파일의 경로이다.
//<!-- Resolves views selected for rendering by @Controllers to .jsp resources in the /WEB-INF/views directory -->
<beans:bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<beans:property name="prefix" value="/WEB-INF/views/" />
<beans:property name="suffix" value=".jsp" />
</beans:bean>
context:component-scan base-package="org.zerock.controller" />
</beans:beans>
SimpleController.java
package org.zerock.controller;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
@RequestMapping("/member") //부모 주소
public class SimpleController {
private static final Logger logger = LoggerFactory.getLogger(SimpleController.class);
@RequestMapping("doA")//기본은 get방식 -> 주소는 /member/doA가 된다.
public void doAget() {//보이드 타입은 매핑된 주소.jsp를 찾아간다.
}
@RequestMapping("doB")
public String doBget(@ModelAttribute("msg") String msg,Model model) { // 리턴타입은 리턴된 주소값.jsp을 찾아간다. 단 주소값은 매핑된 값을 가진다.
logger.info("msg : "+msg);
model.addAttribute("mmm",msg); // 많은 값을 넘길 때 객체이용
model.addAttribute("id","1111");
return "index";
}
@RequestMapping("doD")
public String doDget(Model model) {
logger.info("===doD get===");
Member m = new Member();
m.setId("1111");
m.setPass("2222");
ProductVO p = new ProductVO();
p.setPrice(2000);
p.setName("고구마");
model.addAttribute(p);
model.addAttribute("p",p);
model.addAttribute(m); // 변수명을 지정하지않았을 경우 첫대문자가 소문자로 변형된 클래스 이름(member)이 변수명으로 된다.
model.addAttribute("m",m);
System.out.println(m.toString());
return "index"; //부모 주소값이 주어졌다면 절대경로로 작성해줘야한다.
//상대경로로 작성한다면 제일 처음 주소값으로 돌아간다. ex)index -> 제일 처음 인덱스
}
}
index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
msg : ${msg }<br>
mmm: ${mmm }<br>
id : ${id }<br>
<hr>
member_id = ${member.id }<br>
member_pass = ${member.pass }<br>
m.id = ${m.id }<br>
m.pass = ${m.pass }<br>
productVO.price = ${productVO.price }<br>
productVO.name = ${productVO.name }<br>
<hr>
p.price = ${p.price }<br>
p.name = ${p.name }
<img src="/resources/img/1.jpg">
<img src="/img/1.jpg">
</body>
</html>
'JAVA Programming > Spring' 카테고리의 다른 글
[SPRING] 스프링 설정(root-context.xml,web.xml,pom.xml) (0) | 2024.12.12 |
---|