您的位置:首页 > 编程语言 > Java开发

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

2014-06-01 23:47 337 查看

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中的属性显示的

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: