param사용하기
JSP에서 param을 사용하지 않아도 되는 경우는, 컨트롤러에서 모델에 데이터를 추가했을 때입니다. 예를 들어, Spring MVC와 같은 프레임워크를 사용할 경우, 컨트롤러에서 addObject 메서드를 통해 데이터를 모델에 추가하면, JSP에서는 해당 데이터를 직접 참조할 수 있습니다.
즉, 컨트롤러에서 다음과 같이 데이터를 추가했다면:
java
model.addAttribute("attributeName", value);
JSP에서는 ${attributeName} 형태로 데이터를 사용할 수 있습니다. 이 경우, param을 사용할 필요는 없습니다.
반면, JSP에서 사용자가 입력한 데이터를 받아오고 싶다면 param을 사용해야 합니다. 어떤 특정한 상황에 대한 질문인지 더 구체적으로 말씀해 주시면, 더 자세한 답변을 드릴 수 있습니다.
addObject 메서드는 주로 Spring MVC의 ModelAndView 객체에서 사용되며, 컨트롤러에서 JSP와 같은 뷰로 데이터를 전달하는 데 사용됩니다. 이 메서드로 전달된 데이터는 다음과 같이 처리됩니다:
모델에 데이터 추가: addObject 메서드를 호출하여 특정 이름과 값을 모델에 추가합니다. 예를 들어:
java
ModelAndView modelAndView = new ModelAndView("viewName");
modelAndView.addObject("key", "value");
뷰에서 데이터 접근: JSP와 같은 뷰에서는 전달된 데이터를 EL(Expression Language)을 통해 접근할 수 있습니다. 위의 예에서 "key"로 추가된 데이터는 JSP에서 ${key}로 참조할 수 있습니다.
데이터의 생명주기: addObject로 추가된 데이터는 해당 뷰가 렌더링되는 동안만 유효합니다. 즉, 뷰가 처리가 완료되면 모델에 추가된 데이터는 더 이상 사용할 수 없습니다.
다양한 데이터 타입 지원: addObject 메서드는 문자열, 객체, 리스트 등 다양한 타입의 데이터를 추가할 수 있습니다. JSP에서는 이 데이터를 적절히 처리하여 출력할 수 있습니다.
VO(Value Object)를 사용하는 경우, 컨트롤러에서 데이터를 처리하는 방식은 다음과 같습니다:
VO 클래스 정의: 먼저, 데이터를 담기 위한 VO 클래스를 정의합니다. 예를 들어, 사용자 정보를 담는 UserVO 클래스를 만들 수 있습니다.
java
public class UserVO {
private String name;
private int age;
// 생성자, getter, setter 등의 메서드
}
컨트롤러에서 VO 사용: 컨트롤러 메서드에서 VO 객체를 생성하고, 필요한 데이터를 설정한 후 모델에 추가합니다.
java
@Controller
public class UserController {
@RequestMapping("/user")
public ModelAndView getUser() {
UserVO user = new UserVO();
user.setName("홍길동");
user.setAge(30);
ModelAndView modelAndView = new ModelAndView("userView");
modelAndView.addObject("user", user); // VO 객체 추가
return modelAndView;
}
}
JSP에서 VO 데이터 사용: JSP에서는 전달된 VO 객체의 데이터를 EL을 통해 접근할 수 있습니다.
jsp
<h1>사용자 정보</h1>
<p>이름: ${user.name}</p>
<p>나이: ${user.age}</p>
'시행착오' 카테고리의 다른 글
[spring] 로그인하기 (0) | 2024.10.15 |
---|