本文主要是介绍struts2(二)---ModelDriven模型驱动,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
这篇文章是在上一篇文章(http://blog.csdn.net/u012116457/article/details/48194905)的基础上写的,大家可以先快速阅读一下上一篇。
这篇文章用来写一下struts中的模型驱动机制modelDriven
1.为什么要用modelDriven
struts中Action 用来处理业务逻辑,如果向上一篇文章中的做法,把实体类的属性及get set方法都写在action中,会是代码比较混乱。根据分层的思想,我们可以将其封装为实体bean。而要在action中使用该bean,就要使用ModelDriver(模型驱动),使用ModelDriver的类要继承ModelDriven类。
2.下面通过一个实例来看一下具体的使用方法
struts.xml和web.xml依然和上一篇中配置的一样。
不同的是将表单中涉及的属性封装为了一个bean.如下:
package bean;public class UserBean {//封装表单项,即表单中有的字段,且要相对应private String name;private String password;//封装非表单项,即表单中没有该属性,此处info用来存放服务器返回给页面的信息private String info;public String getName() {return name;}public void setName(String name) {this.name = name;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public String getInfo() {return info;}public void setInfo(String info) {this.info = info;}}
LoginAction.java修改为如下:
package action;
import bean.UserBean;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
public class LoginAction extends ActionSupport implements ModelDriven{
private UserBean model;@Override
public UserBean getModel() {if(model == null){model = new UserBean(); } return model;
}public String index(){return "index";
}public String execute(){//会自动取出页面表单中的值if("sa".equals(this.getModel().getName().trim())&&"aaaaaa".equals(this.getModel().getPassword().trim())){this.getModel().setInfo("登陆成功");return SUCCESS; }{this.getModel().setInfo("登陆失败");return LOGIN;}
}
}
welcome.jsp修改如下:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><base href="<%=basePath%>"><title>info</title></head><body><!-- 写法一 从request取 -->${request.model.name}<br/>${request.model.info}<br/><!-- 写法二 从值栈取(值栈后边再细究) -->${model.name}<br/>${model.info}<br/><!-- 简写 -->${name}<br/>${info}<br/></body>
</html>
上面就是模型驱动机制,缺少的代码在文章首部提供的链接中有。
这篇关于struts2(二)---ModelDriven模型驱动的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!