个性化阅读
专注于IT技术分析

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="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中开发)

输出

struts 2模型驱动的拦截器示例输出1
struts 2模型驱动的拦截器示例输出2

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

赞(0) 打赏
未经允许不得转载:srcmini » Struts 2模型驱动拦截器示例图解
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者

微信扫一扫打赏