- 模型驱动拦截器
- 模型驱动拦截器的参数
- 模型驱动拦截器的示例
modelDriven拦截器将其他模型对象作为valuestack的默认对象。
默认情况下, 操作对象是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="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="name"/>
文件:login-error.jsp
Sorry, username or password error!
<jsp:include page="index.jsp"></jsp:include>
下载完整示例(在不带jar的Eclipse ide中开发)
下载完整示例(在Myeclipse ide中开发)
评论前必须登录!
注册