zoukankan      html  css  js  c++  java
  • Struts2-------领域对象

    领域对象 这个词汇是我在刚开始学习Struts2的时候接触到的,然后再网上查找了一些相关文档,说的最多的就是领域模型。说的挺文字的,自己还是不明白。Model也可说是“领域对象”,包含属性和行为。

    好了,这个问题接下来我在研究吧,还是写一个自己的struts2项目吧。

    我用的软件是idea2016.3.2版的

    第一步需要创建一个MAVEN-WEB项目,在pom.xml文件中导入节点

    ............
         <dependency>
                <groupId>org.apache.struts</groupId>
                <artifactId>struts2-core</artifactId>
                <version>2.5.10</version>
            </dependency>

    这个版本是现在的最高版本。

    第二步创建配置文件,在这里你可以去下载一个struts-2.3.24-all的jar包,这里面有你需要的哪些配置文件,如果你要手写的话,我也是非常支持的。

    web.xml:

    <!DOCTYPE web-app PUBLIC
     "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
     "http://java.sun.com/dtd/web-app_2_3.dtd" >
    
    <web-app>
      <display-name>Archetype Created Web Application</display-name>
      <filter>
        <filter-name>struts2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
      </filter>
      <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
      </filter-mapping>
    </web-app>

    在这里你要注意的是:<filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
    这个节点可能跟你学习到的有点不同,你可以做下比较:

    <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>

    在我这个版本里面是没有.ng的这点要注意。有可能高版本给封装了。

    这两步配置完成之后,你就可以书写action类了

    package cn.struts2.entity;
    
    import com.opensymphony.xwork2.ActionSupport;
    
    import java.util.ArrayList;
    import java.util.List;
    
    /**
     * Created by accp on 2017/2/28.
     */
    public class IteratorAction extends ActionSupport {
        private List<String> list;
    
        public List<String> getList() {
            return list;
        }
    
        public void setList(List<String> list) {
            this.list = list;
        }
    
        @Override
        public String execute() throws Exception{
            list=new ArrayList<String>();
            list.add("Marry");
            list.add("Join");
            list.add("Bob");
            list.add("Jack");
    
            return "1";
        }
    }

    然后接下来配置struts.xml文件,

    struts.xml:

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE struts PUBLIC
            "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
            "http://struts.apache.org/dtds/struts-2.3.dtd">
    <struts>
        <constant name="struts.devMode" value="true" />
        <package name="default" namespace="/" extends="struts-default">
           <action name="aa" class="cn.struts2.entity.IteratorAction">
               <result name="1">success.jsp</result>
               <result name="input">index.jsp</result>
           </action>
        </package>
    
    </struts>

    <action>节点里面的name属性对应的是逻辑名称,这里需要与你的jsp页面上的action=“aa”对应。

    .jsp页面:

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <%@taglib prefix="s" uri="/struts-tags" %>
    <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    <%@ page isELIgnored="false" %>
    <html>
    <body>
    <h2>Hello World!</h2>
    <%--<s:property value="name"/>--%>
    <s:fielderror fieldName="uname"></s:fielderror>*
    <s:form action="aa" method="POST" namespace="/">
        请输入用户名:<s:textfield name="name"></s:textfield>
        请输入密  码:<s:textfield name="pwd"></s:textfield>
        <s:submit value="登录"></s:submit>
    </s:form>
    ${sessionScope.uname}
    </body>
    </html>

    在领域对象IteratorAction里面进行逻辑判断,看看该执行哪个后续的操作。

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

    在ModelDriven接口中只有一个方法:

    public T getModel(),该方法返回一个用于接受用户输入类型数据的模型对象。这个模型对象中的属性可以直接通过属性名来访问。

    具体的实现工作就不在这里演示了。有什么问题可以留言,交流交流。

  • 相关阅读:
    Vue之仿百度搜索框
    Vue之交互
    Vue之键盘事件
    Vue之事件冒泡
    Vue之阻止默认行为
    sql注入常用注释符总结
    什么是Git
    Github部署博客
    php笔记
    JavaScript(更新中)
  • 原文地址:https://www.cnblogs.com/wl0000-03/p/6479803.html
Copyright © 2011-2022 走看看