'프로그래밍언어'에 해당되는 글 8건
- 2010/08/22 org.hibernate.AnnotationException: referencedColumnNames(columnName) of ... referencing ... not mapped to a single property
- 2010/02/26 JPA구현을 Unitils + DBUnit으로 테스트를 수행할 때 제약사항 오류의 원인과 해결방안
- 2010/02/11 log4j:WARN Please initialize the log4j system properly. 해결방법
- 2010/01/18 struts OGNL에서 static method 사용하기
- 2010/01/18 struts에서 ContextPath 사용하기
- 2008/04/04 HttpClient의 GetMethod 사용시 URL의 한글처리
- 2008/04/04 JSON Tools 사용기
- 2008/03/19 Content-Type 정리
"올바른 성장과 따뜻한 나눔"
1. [${ctx}]
2. [<s:property value="%{#ctx}" />]
3. [<s:property value="#ctx" />]
참간단해 보이지만 또 막상 사용하려고 하면 서핑을 하게 됩니다.
또한 거의 대부분 ${pageContext.request.contextPath}와 같은 방식만 언급되어 있지 변수로 선언하고 설정한 다음 사용하는 방법에 대해서는 언급이 없습니다.
그래서 간단하게 접근하기 위한 방법을 공유합니다.
위에서 3가지 방법으로 접근하는 방법을 소개하고 있는데 ${}방식은 프리마커 스타일이구요
밑에 두가지 방식은 OGNL 방식입니다.
(결과는 같지만 %{}는 non-String 일때 문자열로 분석하게 하는 기능입니다. 여기서는 필요가 없죠?.. ㅎㅎ
그래도 이런 표현도 있다는 것을 알아 두세요. 문자열이 아닌 값을 출력할 때는 반드시 써야합니다.^^;
참고: http://struts.apache.org/2.0.14/docs/tag-syntax.html)
OGNL에서는 프리마커스타일을 사용할 수 없기 때문에 첫 문장처럼 태그의 바디문자열로 접근해야만 합니다.
유용한 정보가 되었으면 하네요^^;
끝.
GetMethod 사용시 [코드1]과같이 URL을 생성하고 실행하면 [코드2]와 같은 예외가 발생한다.
// Create a method instance.
StringBuilder searchURL = new StringBuilder(this.urlRoot + "/term/search.json");
searchURL.append('?').append("dictionaryId").append('=').append(dictionary.getId());
searchURL.append('&').append("queryString").append('=').append(queryString);
searchURL.append('&').append("start").append('=').append(0);
GetMethod httpMethod = new GetMethod(searchURL.toString());
java.lang.IllegalArgumentException: Invalid uri 'http://localhost:8080/bcf/term/search.json?dictionaryId=6&queryString=윤*&start=0': Invalid query
at org.apache.commons.httpclient.HttpMethodBase.<init>(HttpMethodBase.java:222)
at org.apache.commons.httpclient.methods.GetMethod.<init>(GetMethod.java:89)
at kr.nextree.nexdic.facade.DictionaryFacade.searchTerms(DictionaryFacade.java:175)
at kr.nextree.nexdic.facade.DictionaryFacadeTest.testSearchTerm(DictionaryFacadeTest.java:68)
이를 해결하기위해서는 [코드3]과 같이 인코딩되어야할 파라메터값은 인코딩을 해준다.
try {
queryString = URLEncoder.encode(queryString, "UTF-8");
}
catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
1. 간단소개 : JSON(JavaScript Object Notation) 을 자바객체로 변환하는 기능 또는 그 반대의 기능을 제공한다.
2. 주요기능:
1) Parser : JSON 텍스트 파일을 분석(Parse)하여 자바모델로 변환(Convert)한다.
2) Renderer : Java 표현을 테스트로 제공(Render)한다.
3) Serializer : POJO를 JSON 표현으로 직렬화(Serialize)한다. 목적은 모든 종류의 자바 데이터구조(재귀, 참조, 원시타입, ...)를 처리할 수 있는 직렬화(serializing) 매커니즘을 제공하는 것이다.
4) Mapper : POJO와 JSON을 맵핑(Map)한다. 이때 JSON 텍스트는 가능한 명료해야만한다. 이 툴은 자바와 JSON을 분석해야하는 다른 프로그래밍 언어가 데이터로 통신할 때 최적의 선택을 한다.
5) Validator : JSON 스키마를 사용하여 JSON 파일의 내용을 검증(Validate)한다.
3. 필요(의존)라이브러리:
- antlr-2.7.6-2005-12-23.jar
4. 총평
비교적 사용하기가 쉽다. 그러나 그다지 유연하지 못하다는 단점이 있는듯 하다. 자바의 인트로스펙션을 사용하여 맵핑하기 때문에 만약 JSON 문자열에 숫자로만 되어 있는 데이터가 있다면 POJO에서 Number 가 아닌 타입이 선언되어 있다면 에러가 발생한다. 문제는 일반 문자열인데 가끔 숫자형 문자열이 있을 경우이다. 이때는 해결책이 보이지 않는다.
가장 큰문제점은 아직 사용자가 많지 않아서 인지 문서가 많이 부족하며 적용사례가 없고 문제를 해결하기가 쉽지 않다는 것이다.
그럼에도 간단한 경우에는 비교적 사용하기 쉽기때문에 사용할만 하다.
contentType
application/acad
AutoCAD drawing files
dwg
application/clariscad
ClarisCAD files
ccad
application/dxf
DXF (AutoCAD)
dxf
application/msaccess
Microsoft Access file
mdb
application/msword
Microsoft Word file
doc
application/octet-stream
Uninterpreted binary
bin
application/pdf
PDF (Adobe Acrobat)
pdf
application/postscript-x
PostScript-x, encapsulated PostScript-x,
Adobe Illustrator
ai, ps, eps
application/rtf
Rich Text Format file
rtf rtf
application/vnd.ms-excel
Microsoft Excel file
xls
application/vnd.ms-powerpoint
Microsoft PowerPoint file
ppt
application/x-cdf
Channel Definition Format file
cdf
application/x-csh
C-shell script-x
csh csh
application/x-dvi
TeX
dvi dvi dvi
application/x-javascript-x
JavaScript-x source file
js
application/x-latex
LaTeX source file
latex
application/x-mif
FrameMaker MIF format
mif
application/x-msexcel
Microsoft Excel file
xls
application/x-mspowerpoint
Microsoft PowerPoint file
ppt
application/x-tcl
TCL script-x
tcl
application/x-tex
TeX source file
tex
application/x-texinfo
Texinfo (emacs)
texinfo, texi
application/x-troff
troff file
t, tr, roff t, tr, roff
application/x-troff-man
troff with MAN macros
man
application/x-troff-me
troff with ME macros
me
application/x-troff-ms
troff with MS macros
ms
application/x-wais-source
WAIS source file
src
application/zip
ZIP archive
zip
audio/basic
Basic audio (usually m-law)
au, snd
audio/x-aiff
AIFF audio
aif, aiff, aifc
audio/x-wav
Windows WAVE audio
wav
image/gif
GIF image
gif
image/ief
Image Exchange Format file
ief
image/jpeg
JPEG image
jpeg, jpg jpe
image/tiff
TIFF image
tiff, tif
image/x-cmu-raster
CMU Raster image
ras
image/x-portable-anymap
PBM Anymap image format
pnm
image/x-portable-bitmap
PBM Bitmap image format
pbm
image/x-portable-graymap
PBM Graymap image format
pgm
image/x-portable-pixmap
PBM Pixmap image format
ppm
image/x-rgb
RGB image format
rgb
image/x-xbitmap
X Bitmap image
xbm
image/x-xpixmap
X Pixmap image
xpm
image/x-xwindowdump
X Windows Dump (xwd)
xwd
multipart/x-gzip
GNU ZIP archive
gzip
multipart/x-zip
PKZIP archive
zip
text/css
Cascading style sheet
css
text/html
HTML file
html, htm
text/plain
Plain text
txt
text/richtext
MIME Rich Text
rtx
text/tab-separated- values
Text with tab-separated values
tsv
text/xml
XML document
xml
text/x-setext
Struct-Enhanced text
etx
text/xsl
XSL style sheet
xsl
video/mpeg
MPEG video
mpeg, mpg, mpe
video/quicktime
QuickTime video
qt, mov
video/x-msvideo
Microsoft Windows video
avi
video/x-sgi-movie
SGI movie player format
movie
JSP에서 강제 파일다운로드 트릭
<%
response.setHeader("Content-Type", "application/x-msdownload");
response.setHeader("Content-Disposition", "attachment;filename=파일명;");
%>

