티스토리 뷰

1. 스프링에서의 커맨드 객체에 대하여 설명하시오.

HTTP 데이터를 받을 때 getParameter 혹은 @RequestParam이라는 어노테이션을 사용합니다. 그러나 스프링의 Command 객체를 사용하면 보다 간단하며 쉽게 코딩을 할 수 있습니다. 왜냐, 일일히 어노테이션에 입력하지 않아도 자바에서 하던 대로 코딩을 하면 되기 때문입니다.  @RequestMapping 하나면 HttpServletRequest request 또는 @RequestParam(" ")를 사용하지 않아도 클래스에 생성한 객체들과 값들을 Command 객체에 바인딩하여 처리해 줍니다.

Command 객체에 저장된 데이터를 JSP에서 사용하려면 ${클래스명.변수명} 구문을 사용하면 됩니다. 스프링 컨테이너가 생성하는 Command 객체의 이름은 클래스 이름의 첫 글자를 소문자로 변경한 이름이 자동으로 설정됩니다. 따라서 .jsp 화면에서 특정 자바 클래스 객체의 변수에 접근할 때 ${클래스명.변수명}을 적으면 됩니다. 더 나아가 Command 객체의 이름을 변경하려면 @ModelAttribute을 사용하여 @ModelAttribute("user")이런 식으로 변경하면 됩니다.

 


2.아래를 프로그래밍 하시오. (spring)
-국영수 입력 받아 출력 합계 평균 수우미양가 출력
-커맨드 객체 사용 할것
-롬복이 사용 할것

 

 

-view폴더 /grade

 

-Grade클래스

package edu.kosmo.ex.grade;

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;


@AllArgsConstructor 
@NoArgsConstructor
@ToString
@Getter
@Setter //롬복
public class Grade {
	private double kor;
	private double eng;
	private double math;
	
	public double getSum() {
		double sum = (kor+eng+math);
		return sum;
	}
	
	public double getAvg() {
		return getSum()/3.0;
	}
	
	public String getGpa() {
		String str;
		
		if(getAvg() >= 90) {
			str = "수";
		}		else if(getAvg() >= 80) {
			str = "우";
		}		else if(getAvg() >= 70) {
			str = "미";
		}		else if(getAvg() >= 60) {
			str = "양";
		}		else {
			str = "가";
		}
		
		return str;
	}


}

 

-GradeController

package edu.kosmo.ex;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

import edu.kosmo.ex.grade.Grade;


/**
 * Handles requests for the application home page.
 */
@Controller
public class GradeController {
	
	@RequestMapping("grade/input")
	public String input(Grade grade) {
			
		return "grade/input";
	}
	@RequestMapping("grade/result")
	public String result(Grade grade) {
			
		return "grade/result"; 
	}
	
}


 grade/input - /grade/input.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<html>
<head>
	<title>GradeInput</title>
</head>
<body>

	<form action="/ex/grade/result">
		국어<input type="text" name="kor"> <br>
		영어<input type="text" name="eng"> <br>
		수학<input type="text" name="math"> <br>
		<input type="submit">
	
	</form>


</body>
</html>


 grade/result - /grade/result.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<html>
<head>
	<title>GradeResult</title>
</head>
<body>

	<h1>
		총점 : ${grade.sum} <br>
		평균 : ${grade.avg} <br> <!--  =${grade.getAvg()} -->
		등급 : ${grade.gpa} <br> <!--  =${grade.getGpa()} -->

	</h1>


</body>
</html>

 

출력화면:

 

 (http://localhost:8282/ex/grade/input)

(제출 클릭)

 

(get방식으로 출력)

 

 


3. 아래를 참고 하여, 프로그래밍 하시오. (spring + javaScript)
- 입력값을 하나 받아 .. 석탑 만들기

-
-view폴더 /tower
-GradeContrller
 tower/input - /tower/input.jsp // 입력값 받기
 tower/result - /tower/tower.jsp // 석탑 출력

- 단 아래를 참고 하여, js 문법으로 처리 할것

시작하기에 앞서 서버가 동작하는 순서를 기억해둬야 할 필요가 있습니다.
JAVA -> JSTL -> HTML -> Javascript

<script language=JavaScript>
    // 방법 1
    var data = '<c:out value="${dataName}"/>';
    
    // 방법 2
    var data2 = ${dataName};
</script>

'면접준비 > KOSMO 허쌤 숙제' 카테고리의 다른 글

학습정리-11-18  (0) 2021.11.18
학습정리-11-17  (0) 2021.11.18
학습정리-11-10  (0) 2021.11.10
학습정리-11-09  (0) 2021.11.09
학습정리-11-08  (0) 2021.11.08
댓글