(Struts2学习篇) 模型驱动开发
无情
阅读:634
2021-03-31 23:09:28
评论:0
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中的属性显示的
声明
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。