레이블이 MessageResource인 게시물을 표시합니다. 모든 게시물 표시
레이블이 MessageResource인 게시물을 표시합니다. 모든 게시물 표시

2013년 8월 23일 금요일

오라클자바 Community에서 설립한 실무개발교육6년차 오엔제이 프로그래밍 실무교육센터 소개

1998년부터 운영된 오라클자바커뮤니티(www.oraclejavanew.kr)에서 설립 운영되고 있는 오엔제이 프로그래밍실무학원(www.onjprogramming.co.kr )은 개발자를 위한 SKILL UP, 실무개발교육 6년차 교육센터 입니다.

(2008년5월부터 오엔제이시스템즈에서 운영하던 "오라클자바교육센터"는 2013년5월 양도 하였으며 새로운 오엔제이 프로그래밍 실무교육센터에서 개발자 실무 교육을 이어갈 수 있도록 더욱 더 노력 하겠습니다.)

자바, 오라클의 기초부터 자바프레임워크(Struts, Spring), 오라클 튜닝, 모델링, 고급SQL, Xinternet(GAUCE, Miplatform, XPlatform), 닷넷(C#, ASP.Net), 스마트폰앱개발교육(안드로이드, 아이폰)까지 실무전문 교육을 진행하고 있습니다.
(본원은 TOBESOFT에서 공인 교육기관 입니다.)

자바, 스프링, 오라클 교육 받으셨는데 이론으로 교육을 받으셨다고요? IT프로그래밍 교육은 실전예제, 실습을 통해 이론을 습득을 해야 합니다. 본원은 모든 강좌가 실습을 통해 이론을 취득하는 실무중심 교육 입니다.

한번 방문 하시어 실무전문 교육의 진수를 느껴 보시기 바랍니다.

감사합니다.

2013년 8월 8일 목요일

[오라클자바커뮤니티, ORACLEJAVANEW.KR]

Struts Framework의 DynaActionForm 클래스에 대해 알아봅니다...


오라클자바커뮤니티에서 설립한 오엔제이프로그래밍 실무교육센터
(오라클SQL, 튜닝, 힌트,자바프레임워크, 안드로이드, 아이폰, 닷넷 실무전문 강의)  


ActionForm을 이용하면 개발 시간을 줄일 수 있는 이점이 있지만 심각한 단점이 있습니다. 그 단점이라 함은 Action이 늘어 날 때 마다 엄청난 ActionForm 클래스가 생겨나야 한다는 점 입니다.

비록 ActionForm을 여러 페이지에서 공유 한다고 하더라도 유지보스 역시 어려워지게 되는 것 입니다. 그래서 머리를 좀 써 ActionForm은 하나만 만들고 그 안에 모든 속성의 처리를 끝내 버리는 사람들도 있습니다. 그러나 이 방식은 여러 명이 공동 프로젝트를 수행 하는 경우엔 이 클래스에 대해 경합이 발생 하므로 좋지 못합니다.

그리고 또한 HTML폼으로부터 얻어내는 프로퍼티를 ActionForm안에 정의 해야 한다는 것이고 추가 되거나 제거 되는 경우엔 ActionForm이 다시 컴파일 되어야 한다는 것 입니다.

이러한 이유 때문에 동적이며 애플리케이션에서 ActionForm의 실제 구현 클래스를 만들 필요가 없는 새로운 ActionForm  클래스가 스트럿츠 프레임워크에 추가되게 된 것 입니다.

동적인 ActionForm과 그렇지 않은 ActionForm의 차이는 ActionForm이 정의하는 프로퍼티, validate() 메소드, reset() 메소드 입니다.


---------------------------
동적인 ActionForm 설정
---------------------------

DynaActionForm을 사용하기 위해서는 일반 ActionForm과 같이 설정 파일에 <form-bean>요소를 추가해야 합니다.

설정 파일에서의 차이점은 동적인 ActionForm은 프로퍼티를 갖기 위해 내부에 form-property를 하나 이상 포함해야 한다는 것 입니다. DynaActionForm은 프로퍼티의 키/값 쌍을 저장하기 위해 java.util.Map을 사용 합니다. 즉 프러임워크에서 form-property 요소를 Map으로 로딩하여 설정 합니다.

아래는 그 설정 예 입니다.

<form-beans>
<form-bean
name="loginForm"
type="org.apache.struts.action.DynaActionForm">
<!-- Specify the dynamic properties of the form -->
<form-property  name="email" type="java.lang.String "/>
<form-property name="password" type="java.lang.String "/>

<!-- You can also set the initial value of a property -->
<form-property  initial="false" name="rememberMe"  type="java.lang.Boolean "/>
</form-bean>
<form-beans>


이와 같이 설정하면 이 ActionForm을 동적으로 만들어 주는데 런타임에 DynaAction클래스의 인스턴스를 생성 하고 설정된 프로퍼티를 위한 get, set 함수를 제공해 줍니다. 새 프로퍼티를 추가 하기 위해서는 설정만 수정하면 자동으로 다 해결 되므로 소스코드를 수정 할 필요는 없습니다.

ActionForm의 reset() 메소드는 기본적으로 아무 동작도 하지 않았지만 DynaActionForm의 reset() 메소드는 모든  프로퍼티를 초기 값으로 초기화 합니다.


===========================================================

[예]

-----------------
설정 파일에서…
-----------------
<form-beans>
<form-bean name="CalcForm" type="org.apache.struts.action.DynaActionForm">                 
            <form-property name="s1" type="java.lang.String" />                   
            <form-property name="s2" type="java.lang.String" />   
        </form-bean>
    </form-beans>

----------------------------------
Action 클래스에서  값을 읽어 오기
----------------------------------

DynaActionForm dForm = (DynaActionForm)form;
           
int s1 = Integer.parseInt(dForm.get("s1").toString());
int s2 = Integer.parseInt(dForm.get("s2").toString()); 

2013년 8월 5일 월요일

(Java Framework 강좌, 자바교육, 오라클자바교육)Struts MessageResource 사용하기

MessageResource 사용하기 


오라클자바커뮤니티에서 설립한 오엔제이프로그래밍 실무교육센터
(오라클SQL, 튜닝, 힌트,자바프레임워크, 안드로이드, 아이폰, 닷넷 실무전문 강의) 
 www.onjprogramming.co.kr 


웹 애플리케이션을 다중 언어가 지원 되도록 만들려고 일일이 매 페이지를 다르게 만든다고 하는 일은 대단히 수고스러운 일 입니다.

자바에서는 java.util.ResourceBundle 클래스를 통해 국제화를 지원하고 있으며 스트럿츠에서는 국제화를 지원하기 위해 org.apache.struts.util.MessageResource를 제공 합니다.

이러한 리소스 번들은 국제화 뿐 아니라 지역화된 프로그램에서도 유지 보수 시간을 줄여 주는 이점이 있습니다. 예를 들어 웹사이트 전체에 사용되는 텍스트나 라벨인 경우 변경이 필요 한 경우 단지 리소스 번들 프로퍼티 파일만 수정 함으로서 간단히 해결 할 수 있습니다.

스트럿츠 1.1 이상에서는 여러 개의 리소스 번들 파일을 지원 합니다.

아래에는 메시지들을 등록 해 놓은 리소스 번들 properties 파일 입니다.
(application.properties)


login.title = LogIn
login.login = Login
login.reset = Cancel

prompt.id= User ID :
prompt.password=Password :

main.title=Main


###############################################
error.id.required=<li>ID REQUIRED.</li>
error.pwd.required=<li>PASSWORD REQUIRED</li>
error.login.invalid=<li>ID/PASSWORD NOT CORRECT</li>

errors.header=<h3><font color="red">ERROR!</font></h3>
                  You must correct the following error(s) before proceeding:<UL>
errors.footer=</ul><hr>


아래는 이러한 메시지를 KEY값을 이용하여 VIEW에서 불러 오는 예젭니다.

(login.jsp)

<%@ page pageEncoding="euc-kr" %>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<html>
<head>
    <title><bean:message key="login.title" /></title>
    <html:base/>
</head>

<body>
<!-- 웹서버가 보내는 응답에 오류가 있다면 출력 -->
<html:errors/>

<!-- LoginSummit에 대해서는 struts-config.xml에 Mapping을 하게 된다 -->
<!-- focus="id" 라는 문법에 의해 자동으로  자바스크립트를 생성 합니다. -->
<html:form action="/LoginSubmit" focus="id">
        <table>
                <!-- 아래에서 텍스트 출력은 application.properties에서 가져 옵니다... -->
                <tr>                       
                        <th align="right"><bean:message key="prompt.id"/></th>                       
                        <!-- 아래는 input type=text 와 동일한 기능을 합니다 -->
                        <td><html:text property="id" value=""/></td>
                </tr>
                <tr>
                        <th align="right"><bean:message key="prompt.password"/></th>
                       
                        <!-- 만약 로그인을 실패하여 다시 돌아오는 경우 pwd 항목의 값을 비울때는 아래처럼
                        redisplay="false" 라고 하면 됩니다. HTML의 password 항목과 유사함  -->
                        <td><html:password property="pwd" redisplay="false"/></td>
                </tr>
                <tr>
                        <!-- Submit 버튼과 Reset 버튼을 생성 -->
                        <!-- 버튼의 라벨은 application.properties에서 내용을 가져 옵니다 -->
                        <th></th>
                        <td>
                            <html:submit>
                                <bean:message key="login.login" />
                                  </html:submit>
                       
                            <html:reset>
                                <bean:message key="login.reset" />
                                  </html:reset>
                        </td>
                </tr>                               
        </table>
</html:form>
</body>
</html>


다음은 리소스 파일을 사용하기 위해 struts-config.xml에 설정 한 예 입니다.

<!-- 아래는 스트러츠 Application에서 사용할 Message Resource들을 설정  -->
<!-- 확장자가 properties인 application.properties를 만들어 넣으면 된다  -->
    <message-resources parameter="resources.application"/>