zoukankan      html  css  js  c++  java
  • 在Stuts2中使用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<User> {
        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" %>
    <html>
    <head>
        <title>Title</title>
    </head>
    <body>
    <s:debug></s:debug>
    <s:fielderror></s:fielderror>
    Hello   <s:property value="name"/>
    <s:iterator value="list" id="str">
        <s:property value="str"/>
    </s:iterator>
    
    </body>
    </html>

    登陆后的效果如下

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

  • 相关阅读:
    练习
    圆形时钟
    鼠标经过改变颜色
    Java基础知识精华部分(个人总结)
    Java随机数总结
    java 获取随机数字的三种方法
    网站开发人员应该知道的61件事
    人人都该了解的十大算法
    String 字符串
    面向对象 JAVA代码
  • 原文地址:https://www.cnblogs.com/yangsongxiao/p/6481020.html
Copyright © 2011-2022 走看看