modelDriven Interceptor trong Struts 2



modelDriven Interceptor làm cho đối tượng model khác thành như đối tượng mặc định của ValueStack. Theo mặc định thì đối tượng action là đối tượng mặc định của ValueStack. Để sử dụng modelDriven Interceptor, bạn cần triển khai ModelDriven Interface trong lớp action của bạn và ghi đè phương thức getModel() của nó.

Theo mặc định, nó được tìm thấy trong default stack, do đó bạn không cần xác định nó một cách tường minh.

modelDriven Interceptor này không định nghĩa tham số nào.

Ví dụ modelDriven Interceptor trong Struts 2


    
    
    login-success.jsp

Ví dụ đầy đủ của modelDriven Interceptor trong Struts 2

File: index.jsp

<%@ taglib uri="/struts-tags" prefix="s" %>




File: struts.xml




/login-success.jsp
/login-error.jsp

    

File: Login.java

package com.vietjack;
import com.opensymphony.xwork2.ModelDriven;public class Login implements ModelDriven{
private User user;public User getUser() {
	return user;
}public void setUser(User user) {
	this.user = user;
}
public User getModel(){
	user=new User();
	return user;
}
public String execute(){
if(user.getPassword().equals("admin")){
	return "success";
}
else{
	return "error";
}
}}

File: User.java

package com.vietjack;public class User {
private String name,password;
//phuong thuc getter va setter
}

File: login-success.jsp

<%@ taglib uri="/struts-tags" prefix="s" %>Welcome, 

File: login-error.jsp

Xin loi, xay ra loi voi username hoac password ban nhap vao!

Chạy ứng dụng và kiểm tra kết quả.

Ghi chú: Nếu bạn không triển khai modelDriven Interface, bạn cần sử dụng tên các trường user.name và user.password trong index.jsp file, nếu không giá trị đã cho sẽ không được thiết lập.