SPRING CONTROLLER 스프링 컨트롤러
스프링 컨트럴러는 자동으로 스프링 객체로 등록되요.
그런데 자동으로 등록하게 해주라고 선언을 해줘야 해요.
servlet-context.xml 파일안에 이렇게 선언해요.
<context:component-scan base-package="com.sms2019.controller" />
controller 안에 있는 것을 등록해줘요.
@Controller
public class HomeController {
private static final Logger logger = LoggerFactory.getLogger(HomeController.class);
/**
* Simply selects the home view to render by returning its name.
*/
@RequestMapping(value = "/", method = RequestMethod.GET)
public String home(Locale locale, Model model) {
logger.info("Welcome home! The client locale is {}.", locale);
Date date = new Date();
DateFormat dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG, locale);
String formattedDate = dateFormat.format(date);
model.addAttribute("serverTime", formattedDate );
return "home";
}
@controller 어노테이션을 선언해주면 컨트롤러로 등록이되요.
@REQUESTMAPPING 은 경로를 선언해주는거에요.
@REQUESTMAPPING는 GETMAPPING 과 POSTMAPPING 로 구분해서 사용할수 있어요.
@PostMapping("/create")
@GetMapping("/videos/{name}")
등과 같이요.
@ResponseBody
@RequestMapping(value = "/appsLogin_ok", method = RequestMethod.GET)
public CommonData appsLogin_ok(HttpServletRequest request, HttpServletResponse response, HttpSession session, Model model) throws Exception
{
@ResponseBody
@RequestMapping(value = "/appsLogin_make", method = RequestMethod.POST, produces = "application/json;charset=UTF-8")
public CommonData appsLogin_make(HttpServletRequest request, HttpServletResponse response, @RequestBody CommonData dto, HttpSession session, Model model) throws Exception
{
REQUESTMAPPING로 GET과 POST를 구분할수 있어요.
데이터를 리턴할땐 Model 을사용하면되요.
넘어온 데이터를 넘길때 하나하나 모델에 담을수도 있지만 강제로 담아서 넘기는 방법도 있어요.
@RequestMapping(value = "/aogs/aogs001", method = RequestMethod.GET)
public String aogs001(HttpServletRequest request, HttpSession session, Model model) throws Exception
{
Map<String, String[]> paramMap = request.getParameterMap();
Iterator keyData = paramMap.keySet().iterator();
CommonData dto = new CommonData();
while (keyData.hasNext())
{
String key = ((String) keyData.next());
String[] value = paramMap.get(key);
dto.put(key, value[0].toString());
model.addAttribute(key, value[0].toString());
smsp.print_String("key : " + key + ", value : " + value[0].toString());
}
하나하나 넘길땐 REMap<String, String[]> paramMap = request.getParameterMap();
에 넘겨받아서. model.addAttribute(key, value[0].toString()); 이렇게 하나하나 넣어줄수 있어요.
@RequestMapping(value = "/TEST", method = RequestMethod.GET)
public void loginGET(@ModelAttribute("test") commondto dto) {
return "test"
}
리턴타입
void
void일경우 해당 url 경로를 그대로 jsp파일의 이름으로 사용.
String
string일경우 리턴타입의 이름에 따라서 jsp파일의 이름을 사용.
json인경우 .
@RequestMapping(value = "/select_getmember_list_join", method = RequestMethod.POST, consumes="application/json")
public @ResponseBody CommonData select_getmember_list_join(@RequestBody CommonData dto) throws Exception {
pox.xml에 추가해줘야해요. 메이븐 라이브러리
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.5.4</version>
</dependency>
ResponseEntity
RequestMapping(value = "/get_member_image", method = RequestMethod.GET)
public ResponseEntity<byte[]> get_member_image(HttpServletRequest request, Model model) throws Exception
{
헤더정보나 데이터를 전달할때 사용.
'SPRING FRAMEWORK' 카테고리의 다른 글
Error configuring application listener of class org.springframework.web.context.ContextLoaderListener (0) | 2020.09.14 |
---|---|
카페24 is not allowed to connect to this mariadb server (0) | 2020.09.14 |
스프링 게시판 만들기 2 (0) | 2020.06.01 |
스프링 게시판 만들기 1 (0) | 2020.05.27 |
spring mvc homepage 스프링 홈페이지 만들기 6 (0) | 2020.05.19 |