设为首页 加入收藏

TOP

在Struts2中使用ModelDriven action
2017-03-03 08:15:45 】 浏览:310
Tags:Struts2 使用 ModelDriven action

在Struts2中,提供了另外一种直接使用领域对象的方式,那就是让action实现com.opensymphony.xwork2.ModelDriven接口。ModelDriven让你可以直接操作应用程序中的领域对象,允许你在Web层和业务逻辑层使用相同的对象。


ModelDiven接口中只有一个方法,如下


public T getModel();


该方法返回一个接受用户输入数据的对象模型。在页面中,这个模型对象中的属性可以直接通过对象名来访问,嗯不需要使用user.name来访问,在action类中,也不需要为这个对象提供getter和setter方法。


代码如下:


package action;


import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ModelDriven;
import entity.User;



public class Model implements Action,ModelDriven {
? ? private User user=new User();
? ? @Override
? ? public User getModel() {
? ? ? ? return user;
? ? }


? ? @Override
? ? public String execute() throws Exception {
? ? ? ? return SUCCESS;
? ? }
}


实体类:


package entity;
public class User {
? ? private String name;


? ? public String getName() {
? ? ? ? return name;
? ? }


? ? public void setName(String name) {
? ? ? ? this.name = name;
? ? }
}


首先还是老样子,创建一个login.jsp,登陆后经过Stuts2的拦截器,找到并进入自定义的实现了action接口和ModelDriven接口的Model类


返回SUCCESS,在stuts.xml中定向到success.jsp页面。


在success.jsp页面中,我们只需要如下定义,就可以实现原有功能


<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib prefix="s" uri="/struts-tags" %>
<%@ page isELIgnored="false" %>


? ? Title




Hello?

? ?




登陆后的效果如下



那么什么时候应该使用领域对象,什么时候应该实现ModelDriven接口呢?这两种方式其实实际上没有本质的差别,对于大多数的应用,使用任何一种方式都可以。


推荐阅读:


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Java开发规范 下一篇Hibernate分页模糊查询

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目