'분류 전체보기'에 해당되는 글 157건
- 2013.07.26 Flex Blazeds + Spring 3 연동시 Flex RemoteObject 설정
- 2013.07.26 IList to DataTable Convert Module
- 2013.07.26 mybatis dot net mapper 조건문 활용
Flex Remote Object 설정
<fx:Declarations> |
tomcat + spring 3 + blazeds 연동 설정이 끝났을 경우 어노테이션 기반 코딩을 할 것이다.
Service 등록과 amf채널 설정이 끝났는데 Flex에서 값을 실제 Service 되는 곳에서 받아 오고 싶을 경우 위와 같이 채널을 지정해 버리면 된다.
그런데 이 경우 보안 문제로 Reslt 가 아닌 Fault를 뱉어 낼 것이다.
이 경우 crossdomain을 설정해 주면 되는데
호스팅이 되는 root에 crossdomain.xml을 등록해 줘야 된다.
<?xml version="1.0" encoding="UTF-8"?> |
이렇게 하면 보안상에 문제가 되겠지만(?) 값을 확인해서 받아 볼 수 있다.
잘 돌아간다 판단 되면 Flex를 서버에서 돌아가는 형식으로 다시 전환후 배포해 보쟈!
문제가 되지 않느다 판단되면 그냥 계속 사용해도 문제 없겠다.
using System.ComponentModel; using System.Data; public static DataTable toDataTable
(this IList data, string tableName) { PropertyDescriptorCollection props = TypeDescriptor.GetProperties(typeof(T)); DataTable table = new DataTable(); foreach (PropertyDescriptor prop in props) { table.Columns.Add(prop.Name, prop.PropertyType); } object[] values = new object[props.Count]; foreach (T item in data) { for (int i = 0; i < values.Length; i++) { values[i] = props[i].GetValue(item); } table.Rows.Add(values); } table.TableName = tableName; return table; }
function type에 static 템플릿(<T>)이 들어 있기 때문에 일반 public class로 컴파일시 에러가 뜰 것이다.
이 경우 class 자체도 static으로 바꿔 주면 문제가 없겠다.
mapper 작성시 xml을 사용 하게 되는데 mybatis 관련 인텔리센스가 작동하지 않을 것이다.
이에 대한 대처 방법은 mybatis dot net version을 다운 받아서 압축 해제시 안에 XML Schema file이 존재 할 것이다.
해당 file을 VS가 설치된 위치의 예를 들어 VS2010일 경우 "C:\Program Files\Microsoft Visual Studio 10.0\" 정도 될 것이다.
간단하게 VS_HOME이라 하겠다.
"VS_HOME\xml\Schemas\" 위치에 복사 해 준다.
그리고 VS를 실행 시킨후 인텔리센스가 작동하는지 확인한다.
<?xml version="1.0" encoding="utf-8" ?> |
위 예문은 동적 쿼리 생성 mapper이다.
dao에서 System.Collections.Hashtable type의 변수를 받아서 조건에 맞게 쿼리를 생성시켜 준다.
Hashtable의 key값이 property 명과 매치되고 그 값이 #propertyName#과 매칭 된다 보면 되겠다.
예문에서 isNotEmpty prepend="AND" property="WorkDate" 이런식으로 되어 있는데
파라메터의 WorkDate 값이 존재 할 경우 밑에 있는 WOKR_DATE = #WorkDate# 의 조건식을 추가 한다.
뭐 이런식이 될 것이다.
dynamic의 item으로 isNotEmpty 말고도 isNotNull 이라든지 여러가지가 존재 한다. 이 항목은 레퍼런스를 참조 하기 바란다.
그럼 dao의 C# Code를 한번 보겠다.
public IList<RsltCarryInVo> getRsltCarryIn(string WorkDate, string YardCode) |
이 전에 포스팅 했던 코드와 유사 하다.
하나 추가된 것이 있다면 파라메터를 받을 수 있는 Hashtable을 추가 했다는거
key는 string이 되고 값은 object이다.
위에 mapper에서 사용한 property명과 key 값이 일치 하는걸 볼 수 있다.
대략 이런식으로 내용을 추가해서 사용하면 되겠다.