(Struts2学习篇) 模型驱动开发

无情 阅读:634 2021-03-31 23:09:28 评论:0


struts2中的模型驱动:

struts2分为模型驱动和属性驱动,一般我们使用的都是属性驱动而模型驱动,一般开发中基本不用,但我们还是需要知道,至少是用法。
模型类:
package org.senssic.model; 
 
public class MPer { 
	private String name; 
	private int age; 
 
	public String getName() { 
		return name; 
	} 
 
	public void setName(String name) { 
		this.name = name; 
	} 
 
	public int getAge() { 
		return age; 
	} 
 
	public void setAge(int age) { 
		this.age = age; 
	} 
 
} 
action类需要实现ModelDriven接口
package org.senssic.action; 
 
import org.senssic.model.MPer; 
 
import com.opensymphony.xwork2.ModelDriven; 
 
public class MAction implements ModelDriven<MPer> { 
	private final MPer mPer = new MPer();//即是这个地方是mPer在jsp中也是使用model.xxx获取模型类的属性的 
	private String name;//如果存在action中覆盖model中的属性,在struts的stack中哪个在头先会被现实,一般是不能覆盖model中的属性显示的 
 
	public String getName() { 
		return name; 
	} 
 
	public void setName(String name) { 
		this.name = name; 
	} 
 
	@Override 
	public MPer getModel() { 
		// TODO Auto-generated method stub 
		return mPer; 
	} 
 
	public String execute() throws Exception { 
		mPer.setName("啦啦啦德玛西亚。"); 
		mPer.setAge(20); 
		this.name = "aaaaaaaa"; 
		return "success"; 
	} 
 
} 

jsp文件:
<%@ page language="java" contentType="text/html; charset=UTF-8" 
    pageEncoding="UTF-8"%> 
    <%@taglib prefix="s" uri="/struts-tags" %> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
<title>Insert title here</title> 
</head> 
<body> 
 
名字:${name} 
<br>年龄:${age} 
或者 
<br>名字:${model.name} 
<br>年龄:${model.age} 
<s:debug></s:debug> 
</body> 
</html>
注:如果存在action中覆盖model中的属性,在struts的stack中哪个在头先会被现实,一般是不能覆盖model中的属性显示的




标签:Struts2
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号