티스토리 뷰

학습정리-12-16.txt
0.00MB



1.스프링 에서의 커맨드 객체에 대하여 설명하시오.
커맨드 객체(Command Object) 란 HttpServletRequest 를 통해 들어온 요청 파라미터들을 setter 를 이용하여 객체에 정의 멤버 변수에 저장, 다시 getter를 이용해서 꺼내오거나 객체 안에 정의 해둔 함수를 호출해 사용할 수 있는 일종의 클래스이다. (게시판의 Dto같은 역할이라고 생각하자?) 커맨드 객체의 사용법은 아래의 2번을 참고하자.


2.아래를 프로그래밍 하시오.
-국영수 입력 받아 출력 합계 평균 수우미양가 출력
-커맨드 객체 사용 할것
-view폴더 /grade
-GradeContrller
grade/input - /grade/input.jsp
grade/result - /grade/result.jsp
-롬복이 사용 할것

Grade.java (커맨드 객체)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
package edu.kosmo.ex.member;
 
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
 
@Data
@AllArgsConstructor
@NoArgsConstructor
@Getter   // 롬복이 자동으로 getter, setter 생성해준다!
@Setter
public class Grade {
    private double kor;
    private double eng;
    private double math;
    private double sum;
    private double avg;
    
    public double getSum() {
        this.sum = (kor + eng + math);
        return sum;
    }
    
    public double getAvg() {
        this.avg = sum / 3;
        return avg;
    }
    
}
cs


GradeContrller.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
package edu.kosmo.ex;
 
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
 
import edu.kosmo.ex.member.Grade;
 
@Controller
public class GradeController {
    
    @RequestMapping("grade/input")
    public String input(Grade grade) { // 커맨드 객체만 파라미터로 넣어주면
        System.out.println("input()..");        // 이전처럼 복잡한 코딩이 필요없다!
        return "grade/input"
    }
    
    @RequestMapping("grade/result")
    public String result(Grade grade) {
        System.out.println("result()..");
        return "grade/result"
    }
}
cs



input.jsp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<html>
<head>
    <title>Grade input</title>
</head>
<body> 
    <h2>점수를 입력하세요.</h2>
    <!-- 앞에 / 꼭 빼먹지 말고 쓰자 -->
    <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" value="제출">    
    </form>
</body>
</html>
 
cs

 

result.jsp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<html>
<head>
    <title>Grade result</title>
</head>
<body>     
     국어 : ${grade.kor}점<br>
     영어 : ${grade.eng}점<br>
     수학 : ${grade.math}점<br>
     총합 : ${grade.sum}점<br>
     평균 : ${grade.avg}점<br>
</body>
</html>
cs

 



3.아래를 참고 하여, 프로그래밍 하시오.
- 입력값을 하나 받아 .. 석탑 만들기
-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>


GradeContrller.java
2번과 동일한 파일이라 안의 내용만....

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    @RequestMapping("tower/input")
    public String towerInput() {
        System.out.println("towerInput()..");
        return "tower/input"
    }
    
    @RequestMapping("tower/result")
    public String result(@RequestParam("floor"String floor, Model model) {
        System.out.println("result()..");
        
        model.addAttribute("floor", floor);
    
        return "tower/tower";
// 출력은 tower.jsp에서 되기 때문에 tower/reault로 쓰면 안된다!
    }
 
cs

input.jsp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>    
<html>
<head>
 
</head>
<body>
    <h2>몇 층 석탑을 만들까요?</h2> 
    <form action="/ex/tower/result">
        <input type="text" name="floor"><br>
        <input type="submit" value="제출">
    </form>    
</body>
</html>
 
cs


tower.jsp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<%@<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>    
<html>
<head>
    <title>Home</title>
    <script lang="JavaScript">
        // var floor = ${floor}; 도 가능!
        var floor = '<c:out value="${floor}"/>';
        for(var i = 1; i <= floor; i++){
    
            for(var j = i; j < floor; j++){
                document.write("&nbsp");
            }
            for(var j = 1; j <= (2 * i - 1); j++){
                document.write("*");
            }
            document.write("<br>");
        }
    </script>
</head>
<body> 
 
</body>
</html>
cs


개별 진척도 48번
ArrayList 에 1부터 10까지 차례대로 입력후 출력하시오,

import java.util.ArrayList; import java.util.Iterator; public class TimeTest { public static void main(String[] args) { ArrayList<Integer> arr = new ArrayList<Integer>(); for(int i = 1; i <= 10; i++) { arr.add(i); } for(int i = 0; i < arr.size(); i++) { System.out.print(arr.get(i) + "\t"); } System.out.println(); for (Iterator itr = arr.iterator(); itr.hasNext();) { System.out.print(itr.next() + "\t"); } System.out.println(); for (Integer n : arr) { System.out.print(n + "\t"); } } }



개별 진척도 49번
홀리그램을 완성하시오.(header:위 content 좌 banner 우 footer 밑)
-부트스트랩 이든 뭐든 다 좋음

<!DOCTYPE html> <html lang="en"> <head> <title></title> <style> div{ margin: 0 auto; } #header{ width: 400px; background-color: yellow; border: 4px solid hotpink; text-align: center; } #wrap { width: 400px; background-color: skyblue; border: 5px solid black; text-align: center; overflow: hidden; } #content{ width: 250px; background-color: lightgrey; border: 2px solid red; text-align: center; float: left; } #banner{ border: 2px solid green; text-align: center; float: left; } #footer{ clear: both; width: 500px; background-color: rgb(201, 144, 212); border: 3px solid orange; text-align: center; } .menu{ color: rgb(67, 67, 148); font-weight: bold; font-size: 20px; } </style> </head> <body> <div id="header"> <h1>Header</h1> </div> <div id="wrap"> <div id="content"> <h1>Content</h1> <ul> <li class="menu">menu1</li> <li>menu2</li> <li class="menu">menu3</li> <li>menu4</li> <li class="menu">menu5</li> </ul> </div> <div id="banner"> <h1>Banner</h1> </div> <div id="footer"> <h1>Footer</h1> </div> </div> </body> </html>



위의 2번 하도록 하겠습니다. (70번 문제) - 국영수 스프링 처리

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함