猿教程 Logo

Struts2拦截器:modelDriven 拦截器

modelDriven拦截器使其他模型对象作为valuestack的默认对象。

默认情况下,action对象是valuestack的默认对象。

要使用modelDriven拦截器,您需要在action类中实现ModelDriven接口,并覆盖其方法getModel()。

默认情况下,它是默认的堆栈。 所以你不需要明确指定它。

modelDriven拦截器的参数

modelDriven拦截器没有定义参数。

modelDriven拦截器的例子

<action name="login" class="com.javatpoint.LoginAction">  
    <interceptor-ref name="params"/>  
    <interceptor-ref name="modelDriven"/>  
    <result name="success">login-success.jsp</result>  
</action>

modelDriven拦截器的完整示例

我们来看看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.javatpoint.Login">  
<result name="success" >/login-success.jsp</result>  
<result name="error">/login-error.jsp</result>  
</action>  
  
</package>  
</struts>

 Login.java

package com.javatpoint;
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.javatpoint;

public class User {
private String name,password;
//getters and setters
}

 login-success.jsp

  1. <%@ taglib uri="/struts-tags" prefix="s" %>  
      
    Welcome, <s:property value="name"/>

login-error.jsp

  1. Sorry, username or password error!  
    <jsp:include page="index.jsp"></jsp:include>

运行结果:



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


版权声明:本站所有教程均为本站原创或翻译,转载请注明出处,请尊重他人劳动果实。请记住本站地址:www.yuanjiaocheng.net (猿教程) 作者:卿文刚
本文标题: C#环境
本文地址:http://www.yuanjiaocheng.net/Struts/struts-2-modeldriven-interceptor-example.html