- 模型驱动拦截器
- 模型驱动拦截器的参数
- 模型驱动拦截器的示例
默认情况下, 操作对象是valuestack的默认对象。
要使用modelDriven拦截器, 你需要在操作类中实现ModelDriven接口, 并覆盖其方法getModel()。
默认情况下, 它位于默认堆栈中。因此, 你无需明确指定它。
模型驱动拦截器的参数 没有为modelDriven拦截器定义参数。
模型驱动拦截器的示例
<
action name="login" class="com.srcmini.LoginAction">
<
interceptor-ref name="params"/>
<
interceptor-ref name="modelDriven"/>
<
result name="success">
login-success.jsp<
/result>
<
/action>
模型驱动拦截器的完整示例
让我们看一下ModelDriven拦截器的完整示例。
文件:index.jsp
<
%@ taglib uri="/struts-tags" prefix="s" %>
<
s:form action="login">
<
s:textfield name="name" label="Name">
<
/s:textfield>
<
s:password name="password" label="Password">
<
/s:password>
<
s:submit value="http://www.srcmini.com/login">
<
/s:submit>
<
/s:form>
档案:struts.xml
<
?xml version="1.0" encoding="UTF-8" ?>
<
!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<
struts>
<
package name="abc" extends="struts-default" >
<
action name="login" class="com.srcmini.Login">
<
result name="success" >
/login-success.jsp<
/result>
<
result name="error">
/login-error.jsp<
/result>
<
/action>
<
/package>
<
/struts>
文件:Login.java
package com.srcmini;
import com.opensymphony.xwork2.ModelDriven;
public class Login implements ModelDriven<
User>
{
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";
}
}}
文件:User.java
package com.srcmini;
public class User {
private String name, password;
//getters and setters
}
文件:login-success.jsp
<
%@ taglib uri="/struts-tags" prefix="s" %>
Welcome, <
s:property value="http://www.srcmini.com/name"/>
文件:login-error.jsp
Sorry, username or password error!
<
jsp:include page="index.jsp">
<
/jsp:include>
下载完整示例(在不带jar的Eclipse ide中开发)
【Struts 2模型驱动拦截器示例图解】下载完整示例(在Myeclipse ide中开发)
输出
文章图片
文章图片
如果未实现ModelDriven接口, 则需要在index.jsp文件中使用user.name和user.password字段名称, 否则将不设置给定值。
推荐阅读
- Struts 2异常处理-异常拦截器
- Struts 2 execAndWait拦截器示例图解
- Struts 2准备拦截器用法示例
- Struts 2 Params拦截器示例
- Struts 2自定义拦截器示例教程
- Struts 2配置文件详细解释
- Struts 2教程(多个配置文件用法示例)
- Struts 2多个命名空间示例
- Struts 2架构和流程详细解释