페이지

2013년 3월 16일 토요일

jamjs 설치 과정 요약


nodejs 를 설치 합니다.

http://nodejs.org/download/ 에서 제공하는 인스톨러를 이용합니다.
v0.10.0을 설치했다가 중간에 문제가 있어서 v0.8로 재설치한 경험이있습니다.
진행과정에서 문제가 생기면 이점 참고하세요.

노드의 패키지관리자 npm을 이용하여 jamjs를 설치합니다.

npm install -g jamjs

(mac 이라면)
$ sudo npm install -g jamjs

테스트 해보기

D:\temp>mkdir jamtest

D:\temp>cd jamtest

D:\temp\jamtest>jam install jquery
installing from repositories jquery
Building version tree...
repositories checking "jquery"
installing jquery@1.9.1 (cached)
updating jam\require.config.js
updating jam\require.js
OK

D:\temp\jamtest>notepad index.html
<script src="jam/require.js"></script>

jam 실행결과 : <span id="jamtext"></span>

<script>
  require(['jquery'], function ($) {
    $('#jamtext').html('Hello, jam world!!!');
  });
</script>

마지막으로 브라우저에서 제대로 보이는지 확인해봅니다.














jamjs , Error: TypeError: Arguments to path.resolve must be strings


Mac 에서 jamjs를 써보려다 발생한 에러입니다.


$ jam install jquery
Error: TypeError: Arguments to path.resolve must be strings
    at Object.exports.resolve (path.js:313:15)
    at Object.exports.extendOptions (/usr/local/lib/node_modules/jamjs/lib/commands/install.js:133:32)
    at /usr/local/lib/node_modules/jamjs/lib/commands/install.js:97:23
    at /usr/local/lib/node_modules/jamjs/lib/commands/install.js:301:13
    at /usr/local/lib/node_modules/jamjs/node_modules/async/lib/async.js:677:28
    at /usr/local/lib/node_modules/jamjs/lib/project.js:74:20
    at /usr/local/lib/node_modules/jamjs/lib/project.js:47:20
    at Object.cb [as oncomplete] (fs.js:154:19)
Failed

jamjs 설치과정에서 경고가 하나 있었습니다.


$ sudo npm install -g jamjs
Password:
npm http GET https://registry.npmjs.org/jamjs
npm http 304 https://registry.npmjs.org/jamjs
npm http GET https://registry.npmjs.org/fstream
npm http GET https://registry.npmjs.org/mkdirp
npm http GET https://registry.npmjs.org/inherits
...
npm http 304 https://registry.npmjs.org/requirejs/2.1.4
npm http 304 https://registry.npmjs.org/tar
npm http 304 https://registry.npmjs.org/fstream-ignore
npm WARN engine tar@0.1.16: wanted: {"node":"~0.5.9 || 0.6 || 0.7 || 0.8"} (current: {"node":"v0.10.0","npm":"1.2.14"})
npm http GET https://registry.npmjs.org/graceful-fs
npm http GET https://registry.npmjs.org/lru-cache
npm http GET https://registry.npmjs.org/sigmund
...
npm http 304 https://registry.npmjs.org/eyes
npm http 304 https://registry.npmjs.org/cycle
/usr/local/bin/jam -> /usr/local/lib/node_modules/jamjs/bin/jam.js
jamjs@0.2.15 /usr/local/lib/node_modules/jamjs
├── inherits@1.0.0
├── semver@1.0.14
├── almond@0.2.5
├── fstream-ignore@0.0.6
├── ncp@0.2.7
├── async@0.1.22
├── mime@1.2.9
├── mkdirp@0.3.5
├── request@2.9.203
├── underscore@1.3.3
├── requirejs@2.1.4
├── rimraf@2.0.3 (graceful-fs@1.1.14)
├── minimatch@0.2.11 (sigmund@1.0.0, lru-cache@2.2.2)
├── fstream@0.1.22 (graceful-fs@1.2.0)
├── tar@0.1.16 (block-stream@0.0.6)
└── prompt@0.2.1 (colors@0.6.0-1, revalidator@0.1.5, pkginfo@0.3.0, utile@0.1.7, winston@0.6.2)

nodejs의 버전을 다운그레이드 하여 해결하였습니다.

node-v0.10.0 -> node-v0.8.17

따로 node-v0.10.0 을 지우거나 하지 않고 node-v0.8.17 을 설치하였는데 이상없이 잘 되는것 같습니다.


$ jam install jquery
installing from repositories jquery
Building version tree...
repositories checking "jquery"
downloading http://jamjs.org/repository/jquery/jquery-1.9.1.tar.gz
extracting /Users/vezi/.jam/cache/jquery/1.9.1/jquery-1.9.1.tar.gz
installing jquery@1.9.1
updating jam/require.config.js
updating jam/require.js
OK

2013년 3월 12일 화요일

Stripes .학습 001

분류 : 자바 웹 프레임워크
자료 : Stripes Quick Start Guide
주제 : 목록 및 조회용 페이지 흐름

학습내용요약

Stripes is a presentation framework for building web applications using the latest Java technologies.

아래와 같은 ActionBean 을 만듭니다.

net.sourceforge.stripes.examples.quickstart.CalculatorActionBean 

이 ActionBean에 접근하기 위한 URL을 만드는 방법입니다.
  • Removes any package names up to and including packages called 'web', 'www', 'stripes' and 'action'
  • Removes 'Action' and 'Bean' (or 'ActionBean') if it is the last part of the class name
  • Converts it to a path and appends '.action'
순서대로 적용합니다.

패키지 명에서 앞에서 stripes까지 제거합니다.
examples.quickstart.CalculatorActionBean 

ActionBean을 제거합니다.
examples.quickstart.Calculator

이를 path로 바꾸고 .action을 붙여줍니다.
/examples/quickstart/Calculator.action
이것이 이 CalculatorActionBean 에 접속하는 URL입니다.
브라우저에서 이 주소로 접속하면 CalculatorActionBean 이 실행됩니다.
일반적인 웹프로그래밍으로 보면 Controller역할을 한다고 보면 됩니다.

이런 주소로 접근 할 때는 @DefaultHandler 가 붙어있는 메소드가 실행됩니다.
@DefaultHandler
public Resolution addition() {
    result = numberOne + numberTwo;
    return new ForwardResolution("/quickstart/index.jsp");
}


뷰로 전달할 값 설정
위 예에서는 result 멤버변수에 값을 넣었습니다.


뷰 파일로 이동
return new ForwardResolution("/quickstart/index.jsp");


뷰 파일에서 이 정보를 사용하는 방법

/quickstart/index.jsp 
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="stripes" uri="http://stripes.sourceforge.net/stripes.tld"%>
<stripes:useActionBean beanclass="net.sourceforge.stripes.examples.quickstart.CalculatorActionBean" var="actionBean" />

<tr>
  <td>Result:</td>
  <td>${actionBean.result}</td>
</tr>

stripes 태그를 사용하기위한 준비.
CalculatorActionBean을 actionBean이라는 이름을 사용할 것이라는 선언.
${actionBean.result} 와 같이 앞서 처리했던 값을 꺼내서 사용.