Redirect
@RequestMapping(value = "/input")
public String input(HttpServletRequest request,Model model) {
String name=request.getParameter("name");
String age=request.getParameter("age");
model.addAttribute("name", name);
model.addAttribute("age", age);
model.addAttribute("addr", "서울");
//여기서 다른 요청을 따라 모델을 넘기면 해당 모델이 parameter로 취급된다.
return "redirect:/last";
//다른 컨트롤러 요청(response.sendRedirect와 흡사함)
}
@RequestMapping(value = "/last")
public String last() {
return "redirect/last";
//redirect폴더의 last.jsp
}
AutoWired 자동 연결
myPkg2의 CircleImpl 클래스
@Component("myCircleImpl")
public class CircleImpl implements Circle {
@Autowired//pointX 객체만 해당됨. 객체생성.
@Qualifier("PointX")//어떤 자식 클래스가 적합한지 정의.(자식이 하나면 쓸 필요 없다.)
Shape pointX;
appContext.xml에
<context:component-scan base-package="myPkg2"/>
추가.
myPkg2의 Main
ApplicationContext text=new ClassPathXmlApplicationContext("appContext.xml");
Circle circle=(Circle)context.getBean("myCircleImpl");
System.out.println(circle.make());
이와 같이 객체를 만드는것을 생략할 수 있다.
PointX px = new PointX();
PointY py = new PointY();
CircleImpl circle = new CircleImpl();
circle.setPointX(px);
System.out.println(circle.make());
Valid 유효성 검사
pom.xml
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>4.2.0.Final</version>
</dependency>
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.2.8</version>
</dependency>
MemberBean
//@NotBlank(message = "NotBlank") <-이건 작동한다.
//@NotNull(message = "NotNull") <-이건 안됨
@NotEmpty(message = "아이디 입력 누락")
private String id;//어노테이션 하나당 하나만 된다.
@NotEmpty(message = "비번 입력 누락")
@Length(min = 3,max = 5,message = "3자리 이상 5자리 이하")
@Size(max = 5,min = 3,message = "size")//이것도 된다 ==Length
@Pattern(regexp = "^[0-9]+$",message = "pw는 숫자만 입력가능")
private String pw;
MemberController
@RequestMapping("input")
public String result(@ModelAttribute("member") @Valid MemberBean mb,
BindingResult result) {//@Valid 체크하는 역할 문제가 생기면 BindingResult 객체에 에러가 담긴다.
//BindingResult 는 앞에 쓰면 안된다. 순서체크할 것
if(result.hasErrors()) {
return "form"; //form.jsp로 리턴
}
return "result";
}
Form.jsp
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%>
<style type="text/css">
.err{
font-size: 9pt;
color : red;
font-weight: bold;
}
</style>
form.jsp<br>
<form:form commandName="member" action="input" method="post">
아이디 : <input type="text" name="id">
<form:errors cssClass="err" path="id"/>
<br><br>
비번 : <input type="text" name="pw">
<form:errors cssClass="err" path="pw"/>
<br><br>
<input type="submit" value="전송">
</form:form>
'Develop > Spring MVC' 카테고리의 다른 글
0818 Spring (0) | 2022.08.22 |
---|---|
0817 Spring Start (0) | 2022.08.22 |