Action接收参数的第三种方式是ModelDriven,模型驱动,但这种方式并不常用
struts.xml文件与之前没有变化
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<constant name="struts.enable.DynamicMethodInvocation" value="true" />
<constant name="struts.devMode" value="true" />
<package name="user" namespace="/user" extends="struts-default">
<action name="user" class="com.demo.struts2.action.UserAction">
<result>
/user_add_success.jsp
</result>
</action>
</package>
</struts>
访问方式与第一种使用属性接收的方式相同
但是UserAction与第二种DomainModel接收参数的方式类似
public class UserAction extends ActionSupport implements ModelDriven<User>{
private User user = new User();
public String add(){
System.out.println("name:" + user.getName() + ", age:" + user.getPassword());
return SUCCESS;
}
@Override
public User getModel() {
return user;
}
}
不同的地方有两点:
1、User对象不再由struts进行创建,而由用户自己new一个新的对象
2、UserAction实现了MedeolDriven接口(使用泛型避免类型转换的麻烦),并且实现了getModel方法将User对象获取
这里强调了MVC的思想
Model:User View:JSP文件 Controller:Action
本文介绍 Struts2 中 ModelDriven 模式的应用,重点讲解如何通过实现 ModelDriven 接口来传递参数,并对比传统参数传递方式的不同之处。
&spm=1001.2101.3001.5002&articleId=18401821&d=1&t=3&u=c39d6b54f7b94323b572d942379aff19)
170

被折叠的 条评论
为什么被折叠?



