Struts 2模型驱动拦截器示例图解

  1. 模型驱动拦截器
  2. 模型驱动拦截器的参数
  3. 模型驱动拦截器的示例
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="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中开发)
输出
Struts 2模型驱动拦截器示例图解

文章图片
Struts 2模型驱动拦截器示例图解

文章图片
如果未实现ModelDriven接口, 则需要在index.jsp文件中使用user.name和user.password字段名称, 否则将不设置给定值。

    推荐阅读