2010. 8. 6. 18:18 flex
[10-D3][notice] DB, ActionScript Class, getter, setter function
[10-D3][notice] DB, ActionScript Class, getter, setter function
[01] Flex Data Service HttpService의 사용
- mx:Application 태그
. layout="absolute": 콘트롤 배치 모드
. creationComplete="init()": mxml이 실행시 자동으로 호출되는 함수
. initialize="System.useCodePage=true": "euc-kr" 사용 가능 정의
. jsp 페이지에서의 출력은 <%@ page contentType="text/xml; charset=euc-kr" %>에서
"euc-kr"로 지정합니다.
- Flex Builder setting
Project Type: Flex Project
Project Name: noticeFx
1.Database 테이블 구조
DROP TABLE noticeFx PURGE;
CREATE TABLE noticeFx(
idx NUMBER(5) NOT NULL, -- 일련 번호
regdate VARCHAR(20) NOT NULL, -- 등록일
subject VARCHAR(100) NOT NULL, -- 제목
content VARCHAR(1000) NOT NULL, -- 내용
passwd VARCHAR(10) NOT NULL, -- 패스워드
PRIMARY KEY(idx)
);
-- 추가
INSERT INTO noticeFx(idx, regdate, subject, content, passwd)
VALUES((SELECT NVL(MAX(idx), 0)+1 AS cnt FROM noticeFx),
sysdate, '내일은 즐거운 종강입니다.', '앞으로의 수업은 12강의장에서 프로젝트 진행입니다.', '1');
INSERT INTO noticeFx(idx, regdate, subject, content, passwd)
VALUES((SELECT NVL(MAX(idx), 0)+1 AS cnt FROM noticeFx),
sysdate, '내일은 금요일입니다.', '학원에 11시까지 오세요.', '1');
INSERT INTO noticeFx(idx, regdate, subject, content, passwd)
VALUES((SELECT NVL(MAX(idx), 0)+1 AS cnt FROM noticeFx),
sysdate, '수업 시간표', '11:13:00, 14:00~19:00', '1');
-- 목록
SELECT idx, regdate, subject, content, passwd
FROM noticeFx
ORDER BY idx DESC;
-- 읽기
SELECT idx, regdate, subject, content, passwd
FROM noticeFx
WHERE idx=1;
-- 수정
UPDATE noticeFx
SET subject='12월 4일 12시', content='병아리반 개강'
WHERE idx=1;
-- 삭제
DELETE FROM noticeFx
WHERE idx=1;
COMMIT;
2. getter, setter의 제작 및 사용
- 함수명과 변수명은 일치하면 안됨으로 private변수에 '_'등을 추가합니다.
private var _id:String;
/*
// getter, setter의 선언 및 사용
public function set id(id:String):void{
this._id = id;
}
public function get id():String{
return this._id;
}
*/
>>>>> TestDTO.as
package flex.notice{
public class TestDTO{
// AS는 변수명과 함수명이 같으면 구분이 안됨으로 에러 발생
// 변수명이 함수명과 같음으로 변수명앞에 '_'를 붙입니다.(권장)
private var _name:String = "";
private var _kuk:int = 0;
private var _eng:int = 0;
private var _mat:int = 0;
// setter, 형식: set 변수명(변수)
// JAVA: setName(String name)
public function set name(name:String):void{
this._name = name;
}
// getter, 형식: get 변수명()
// JAVA: getName()
public function get name():String{
return this._name;
}
public function set kuk(kuk:int):void{
this._kuk = kuk;
}
public function set eng(eng:int):void{
this._eng = eng;
}
public function set mat(mat:int):void{
this._mat = mat;
}
public function get kuk():int{
return this._kuk;
}
public function get eng():int{
return this._eng;
}
public function get mat():int{
return this._mat;
}
}
}
>>>>> TestDTOTest.mxml
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"
creationComplete="init()">
<mx:Style> <!-- CSS 적용 -->
.alertTitle {
fontSize: 18;
}
.alertMessage {
fontSize: 18;
}
Alert {
title-style-name: "alertTitle";
message-style-name: "alertMessage";
}
</mx:Style>
<mx:Script>
<![CDATA[
import mx.controls.Alert;
import flex.notice.TestDTO;
public function init():void{
var dto:TestDTO = new TestDTO();
// JAVA에서는 에러 발생, private직접 접근 불 가능
dto.name = '브래드피트'; // set name(name:String):void
dto.kuk = 60;
dto.eng = 100;
dto.mat = 85;
var str:String = '';
str = '이름: ' + dto.name; // get name():String
str = str + ', 국어: ' + dto.kuk;
str = str + ', 영어: ' + dto.eng;
str = str + ', 수학: ' + dto.mat;
Alert.show(str);
}
]]>
</mx:Script>
</mx:Application>
[실습] 가상의 테이블을 대상으로 5개의 변수를 만들어 값을 입력받아
출력하는 프로그램을 작성하세요.
>>>>> src/.../...VO.as
>>>>> src/PropertyTest.mxml
- 콘트롤은 Form Layout에 들어가고, Form Layout은 Panel에 들어가도록 합니다.
콘트롤 --> Form --> Panel
- ControlBar를 이용하여 버튼등을 등록합니다.
- 입력은 TextInput으로 진행합니다.
- Alert.show()를 이용하여 출력하지 말고 'TextArea'를 이용하여 출력하세요.
'flex' 카테고리의 다른 글
[12-D4][notice][JSP] Eclipse 프로젝트 설정, 글 목록(list.jsp) (0) | 2010.08.06 |
---|---|
[11-D3][notice] DTO, Manager의 제작 및 사용 (0) | 2010.08.06 |
[09-D3] Container & Component 배치 (0) | 2010.08.06 |
[08-D3] 기본 콤포넌트(ListBox, ComboBox, Panel, Form, ControlBar.....) (0) | 2010.08.06 |
[07-D2] 기본 콤포넌트(Radio Button, CheckBox, Image, LinkButton, DateField) (0) | 2010.08.06 |