zoukankan      html  css  js  c++  java
  • struts2基础

    1、到官网下载解压以后
    apps:struts2的示例
    docs:文档、api
    lib:核心类库,jar包
    struts2的配置文件有两份:配置action的struts.xml文件 配置struts2全局属性的struts.properties文件
    struts.devMode = false //指定struts2处于开发状态
    struts.configuration.xml.reload=true //指定当配置文件改变时,自动重新加载配置文件
    struts2的控制器由两个部分组成:FilterDispatcher和业务控制器Action
    Action类优点:Action类是一个pojo,具有很好的代码复用性,无需与servlet Api耦合,方便单元测试,execute方法仅返回一个字符串,该处理结果可以映射到任何视图,甚至是另一个Action。
    2、需要使用的jar包
    struts2-core-2.1.8.1.jar xwork-core-2.1.6.jar ognl-2.7.3.jar commons-logging-1.0.4.jar
    freemarker-2.3.12.jar commons-io-1.3.2.jar commons-fileupload-1.2.1.jar
    7个包为必须使用的包


    3、编辑web应用的web.xml配置文件,配置struts2的核心Filter
    <filter>
    <filter-name>struts2</filter-name>
    <filter-class>
    org.apache.struts2.dispatcher.FilterDispatcher
    </filter-class>
    </filter>
    <!-- FilterDispatcher用来初始化struts2并且处理所有的WEB请求。 -->
    <filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern>/*</url-pattern>
    </filter-mapping>

    struts2默认拦截所有后缀为.action的请求。因此,如果将Action属性设置为*.action格式就可以被struts2拦截。

    导入jar包->配置->Action

    4、struts2对请求的响应过程是典型的AOP(面向前面编程)处理方式

    小例子:
    struts:
    <package name="mystruts" extends="struts-default" >
    <action name="login" class="system.LoginAction">
    <result type="chain">book</result>
    <result name="error">/hello.jsp</result>
    </action>
    <action name="book" class="action.BookAction">
    <result name="success">/test/book.jsp</result>
    <result name="error">/hello.jsp</result>
    </action>
    </package>
    BookAction:
    public String execute() throws Exception {
    String user = (String) ActionContext.getContext().getSession().get("user");
    if (user.equals("tiger")) {
    BookService bs = new BookService();
    setBooks(bs.getBookList());
    return SUCCESS;
    }else {
    return ERROR;
    }
    }
    book.jsp:
    <body>
    <table border="1" width="360">
    <s:iterator value="books" status="index">
    <s:if test="#index.odd==true">
    <tr style="background-color: #cccccc">
    </s:if>
    <s:else>
    <tr>
    </s:else>
    <td><s:property /></td>
    </tr>
    </s:iterator>
    </table>
    <%
    ValueStack vs = (ValueStack) request
    .getAttribute("struts.valueStack");
    String[] books = (String[]) vs.findValue("books");
    for (String b : books) {
    %>
    <tr><%=b%></tr>
    <%
    }
    %>
    </body>

  • 相关阅读:
    Windows环境下使用cygwin ndk_r9c编译FFmpeg
    android 开发环境搭建
    POJ 2559 单调栈入门,三种代码实现
    poj 2100 尺取法(尺度法)
    尺取算法 入门+模板+例题
    POJ 3579 Median 二分+思维
    POJ 3685 Matrix 二分套二分
    CodeForces 371C Hamburgers 二分
    HDU 4355 Party All the Time 三分算法
    HDU 3613 Best Reward Manacher算法
  • 原文地址:https://www.cnblogs.com/ikuman/p/2239472.html
Copyright © 2011-2022 走看看