request.getSession(false); // 현재 세션이 존재하면 기존 세션 리턴, 없으면 null값 리턴
request.getSession(); //현재 세션이 존재하면 기존 세션 리턴, 없으면 새로생성한 세션 리턴
The actions and template data in a JSP page is written using the JspWriter object that is referenced by the implicit variable out which is initialized automatically using methods in the PageContext object.
This abstract class emulates some of the functionality found in the java.io.BufferedWriter and java.io.PrintWriter classes, however it differs in that it throws java.io.IOException from the print methods while PrintWriter does not.
왜 그런가 했더니
초간단 설정문제였다. -_-
프로젝트 생성시에
Set Source Level to 1.4 라고 되어있는 check box에
체크를 해제시키고 생성시켜야한다.
이미 만들어진 프로젝트라면
프로젝트 속성(Properties)에 들어가서
Source Level을 1.4에서 1.5로 맞춰주면 해결된다.
Struts 프레임웍은 일반적으로 에플리케이션에서 필요한 각 입력폼당 하나의 ActionForm
빈(이는 ActionForm
을 상속하는 Java클래스임.) 하나를 정의한다고 가정합니다. ActionForm
빈들은 때때로 "form beans"라고 불립니다. 만일 ActionMapping
설정 파일(Contoller 컴포넌트 만들기 참고)에 이같은 빈들을 선언하면, Struts 컨트롤러 서블릿은 적절한 Action
메소드를 호출하기 전에 자동적으로 다음의 서비스들을 수행합니다.
<jsp:setProperty>
와 비슷합니다.
ActionForm
빈은 Action 클래스의 perform()
메소드에게 전달되고, perform()
메소드에 의해 호출되고, 사용 가능한 값들을 만들게 됩니다. ActionForm
빈들을 코딩할때, 다음의 원칙들을 명심해서 따르도록 합니다.
ActionForm
클래스 자체는 어떤 특정한 메소드를 구현하는 것을 요구하지 않습니다. 그것은 전체 아키텍쳐에서 각각의 빈들이 수행하는 역할을 명시하기 위해 사용됩니다. 전형적으로, ActionForm
빈은 비지니스 로직없이 속성의 getter, setter 메소드만을 가집니다.
getXxx()
와 setXxx()
메소드들과 함께) form 필드 이름과 속성의 이름은 항상 JavaBeans 규약에 따라 반드시 매칭되어야 합니다. 예를 들어 username이라는 이름의 input 필드는 setUsername() 메소드를 호출하게 될 것 입니다.
customer.getName()
와 customer.setName(String name)
에 대응합니다. 중첩된 문법에 대한 보다 자세한 내용은 Tag 라이브러리 개발자 가이드를 보시기 바랍니다.
여기서 논의하고 있는 "form"은 반드시 유저 인터페이스 내에 하나의 JSP페이지에 대응되는 것은 아닙니다. 많은 애플리케이션에서 여러 개의 페이지에 확장된 (유저의 관점에서) 하나의 "form"을 가지는 것은 일반적인 일입니다. 예를 든다면, 보통 새로운 에플리케이션을 인스톨할때 사용되는 마법사 스타일의 유저 인터페이스를 생각해보시기 바랍니다. Struts는 (form의)필드가 어떤 페이지에서 보여진다 할지라도 모든 필드에 대한 속성을 포함하는 하나의 ActionForm
빈을 정의할 수 있습니다. 따라서, (편주:같은 ActionForm
이라면) 다양한 페이지의 같은 form은 같은 Action 클래스로 submit될 것이다. 만일 이런 제안을 따른다면, 페이지 디자이너는 페이지의 처리 로직을 자주 바꿀 필요없이 다양한 페이지 사이에서 (form)필드들을 재배치할 수 있습니다.