본문 바로가기

● 개인 공부/샘플예제코드분석

struts게시판 코드분석해보기

#학원에서 배운 내용 복습& 개인공부의 의미를 가지고 작성하는 글로 잘못된 정보가 기재되었을수도 있습니다.


1. 상단부 분석



struts의 컨트롤러에 해당하는 부분이다. 주소간의 이동은 모두 페이지 내에서 처리된다고 보면된다.


태그에 대해 간단하게 설명부터 하고 시작하겠다.

기본적으로 struts.xml의 페이지는  최상단의 struts 필요기능들을 불러들이는 주소와 그 아래

<struts>


</struts>


와 같이 가장밖쪽을 감싸고 있는 태그와 그 안쪽에 패키지와 액션태그로 이루어져있다. 


<struts>

<package>

 <action>


 </action>

</package>

</struts>


패키지는 비슷한 기능끼리 모아둔것을 하나로 포장해둔것으로 다른 기능을하는 패키지와 구별하는 것으로 이해하면될것같고 액션테그는

우리가 사용하게 될 기능들을 넣는 것으로 보면 된다. 


<action name="listAction" class="board.listAction">

<result>/board/boardlist.jsp></result>

</action>


액션의 네임은 주소창에 listAction.action으로 치고 서버에 요청을 보냈을때 서버측에서 처리해야할 단위를(listaction)

구별하는것으로 보면될것같다


<result>/board/boardlist.jsp</result>


이 태그는 action페이지에서 정상적으로 처리되었을때 보여주게 될 view페이지이다. 


즉 위 코드를 한줄로 요약하면 listAction이라는 주소를 치고 들어왔을때 서버측에서는 listAction과 같은 이름의 액션태그를 찾아 그에 해당하는 클래스인 board.listAction페이지를 실행하고 정상 처리되었을때 boardlist.jsp를 실행하는것이라고 보면된다.


간단한 태그설명은 여기까지하고 다음글부터 코드분석만 하도록하겠다.



<strtus.xml코드>


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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">
 
<struts>
    <!-- 용량제한 100MB 로 설정. -->
    <constant name="struts.multipart.maxSize" value="104857600" />
    
    <package name="board" extends="struts-default">
 
        <!-- 글로벌 예외 처리 화면 설정 -->
        <global-results>
            <result name="error">/board/pageError.jsp</result>
        </global-results>
        
        <global-exception-mappings>
            <exception-mapping result="error" exception="java.lang.Exception"/>
        </global-exception-mappings>    
        <!-- 게시판 리스트 액션. -->
        <action name="listAction" class="board.listAction">
            <result>/board/boardList.jsp</result>
        </action>
        
        <!-- 게시판 쓰기 액션. -->
        <action name="writeForm" class="board.writeAction" method="form">
            <result>/board/boardWrite.jsp</result>
        </action>
        
        <action name="writeAction" class="board.writeAction">
            <result type="redirect-action">
                <param name="actionName">listAction</param>
            </result>
        </action>
        
        <!-- 게시판 상세보기 액션. -->
        <action name="viewAction" class="board.viewAction">
            <result>/board/boardView.jsp</result>
        </action>
        
        
        <!-- 파일 다운로드 액션. -->
        <action name="fileDownloadAction" class="board.viewAction" method="download">
                <result name="success" type="stream">
                                <param name="contentType">binary/octet-stream</param>
                            <param name="inputName">inputStream</param>
                            <param name="contentDisposition">${contentDisposition}</param>
                            <param name="contentLength">${contentLength}</param
                            <param name="bufferSize">4096</param>
                        </result>
            </action>
        
        <!-- 비밀번호 체크 액션. -->
        <action name="checkForm" class="board.viewAction" method="checkForm">
            <result>/board/checkPassword.jsp</result>
        </action>
        
        <action name="checkAction" class="board.viewAction" method="checkAction">
            <result name="error">/board/checkError.jsp</result>
            <result>/board/checkSuccess.jsp</result>
        </action>
        
        <!-- 게시판 수정 액션. -->
        <action name="modifyForm" class="board.viewAction">
            <result type="chain">writeForm</result>
        </action>
        
        <action name="modifyAction" class="board.modifyAction">
            <result type="chain">viewAction</result>
        </action>        
 
        <!-- 게시판 삭제 액션. -->
        <action name="deleteAction" class="board.deleteAction">
            <result type="chain">listAction</result>
        </action>    
    </package>
</struts>
 
 
cs