zoukankan      html  css  js  c++  java
  • Struts2 基础典型应用

    例子

    下面就是运用Struts2 实现的例子的运行效果

    输入正确名字

    不输入直接点击提交按钮

    在首页面中输入名称,点击提交按钮,显示欢迎界面。

    如果没有名称,点击提交按钮,就显示错误界面。

    =============================================================================================

    原理:

    1.当用户输入或不输入名字,并点击提交按钮后,相当于浏览器提交了一个请求(http://localhost:8080/Struts2Test/greeting.action)给web容器

    2.Web容器调用Struts2过滤器的doFilter()方法(在web.xml中注册了一个Struts2提供的过滤器,所以才调用Struts2过滤器)

    3.在第一步中可以看到,请求中调用的action的名称是greeting,那么Struts2就会在struts.xml中与greeting相匹配的action(如<action name="greeting" class="com.hch.action.GreetingAction">)

    4.找到后将请求中的表单数据注入到这个action对象中,注入的方法是通过该对象的setXXX()方法,注入后再调用该对象的execute()方法来执行,并返回结果到struts2中,假设这里返回的结果是success。

    5. Struts2 根据action对象返回的success结果,在struts.xml中找到<result name="success">success.jsp</result>信息,并将success.jsp返回给浏览器来展示,这样一次交互就结束了。

    ==============================================================================================

    实现过程

    1.创建一个Java Web项目。

    2. 下载依赖类库,并解压,将其中的库文件添加到WEB-INF目录的lib文件夹中。

    最新的版本的下载链接

    http://struts.apache.org/download.cgi#struts251  或者访问  http://pan.baidu.com/s/1nvvoLEp

    本例子使用的全部依赖库下载地址:http://pan.baidu.com/s/1gfa2q5d

    3.在WEB-INF目录下创建一个web.xml文件,并在其中注册一个Struts2提供的过滤器,文件内容如下

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     3     xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
     4     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
     5     id="WebApp_ID" version="2.5">
     6     <display-name>8.2</display-name>
     7     <welcome-file-list>
     8         <welcome-file>index.html</welcome-file>
     9         <welcome-file>index.htm</welcome-file>
    10         <welcome-file>index.jsp</welcome-file>
    11         <welcome-file>default.html</welcome-file>
    12         <welcome-file>default.htm</welcome-file>
    13         <welcome-file>default.jsp</welcome-file>
    14     </welcome-file-list><!-- Struts2过滤器 -->
    15     <filter>
    16         <!-- 过滤器名称 -->
    17         <filter-name>struts2</filter-name>
    18         <!-- 过滤器类 -->
    19         <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
    20     </filter>
    21     <!-- Struts2过滤器映射 -->
    22     <filter-mapping>
    23         <!-- 过滤器名称 -->
    24         <filter-name>struts2</filter-name>
    25         <!-- 过滤器映射 -->
    26         <url-pattern>/*</url-pattern>
    27     </filter-mapping>
    28 </web-app>

    4. 创建一个Action对象,其名称是GreetingAction。

    位置如下

    代码如下:

     1 package com.hch.action;
     2 import com.opensymphony.xwork2.ActionSupport;
     3 
     4 public class GreetingAction extends ActionSupport {
     5     private static final long serialVersionUID = 1L;
     6     // 用户名
     7     private String username;
     8     // 处理请求
     9     @Override
    10     public String execute() throws Exception{
    11         // 判断用户名是否有效
    12     if(username == null || "".equals(username)){
    13             // 返回到错误页面
    14             return ERROR;
    15         }else{
    16             // 返回到成功页面
    17             return SUCCESS;
    18         }
    19     }
    20     // username属性的getter方法
    21     public String getUsername() {
    22         return username;
    23     }
    24     // username属性的setter方法
    25     public void setUsername(String username) {
    26         this.username = username;
    27     }
    28 }

     5. 创建struts.xml文件

    位置如下

    内容如下:

     1 <!DOCTYPE struts PUBLIC
     2     "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN"
     3     "http://struts.apache.org/dtds/struts-2.1.dtd">
     4 <struts>
     5     <!-- 声明包 -->
     6     <package name="myPackage" extends="struts-default">
     7         <!-- 定义action -->
     8         <action name="greeting" class="com.hch.action.GreetingAction">
     9             <!-- 定义成功的映射页面 -->
    10             <result name="success">success.jsp</result>
    11             <!-- 定义失败的映射页面 -->
    12             <result name="error">error.jsp</result>
    13         </action>
    14     </package>
    15 </struts>

    6. 创建 首页面index.jsp 处理成功页面success.jsp 处理失败页面error.jsp

    位置如下:

    内容如下:

    index.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>主页</title>
    <style type="text/css">
        *{font-size: 12px;}
    </style>
    </head>
    <body>
      <form action="greeting.action" method="post">
          请输入你的姓名:<input type="text" name="username">
          <input type="submit" value="提交">
      </form>
    </body>
    </html>

    success.jsp

     1 <%@ page language="java" contentType="text/html; charset=UTF-8"
     2     pageEncoding="UTF-8"%>
     3 <%@ taglib prefix="s" uri="/struts-tags" %>
     4 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
     5 <html>
     6 <head>
     7 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
     8 <title>欢迎</title>
     9 <style type="text/css">
    10     *{font-size: 12px;}
    11 </style>
    12 </head>
    13 <body>
    14     <font color="red">
    15         <s:property value="username" />
    16     </font>
    17      ,您好!
    18     <br>
    19     欢迎使用来到本站。
    20 </body>
    21 </html>

    error.jsp

     1 <%@ page language="java" contentType="text/html; charset=UTF-8"
     2     pageEncoding="UTF-8"%>
     3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
     4 <html>
     5 <head>
     6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
     7 <title>错误</title>
     8 </head>
     9 <body>
    10     <font color="red"> 错误:您没有输入姓名!</font>
    11 </body>
    12 </html>
  • 相关阅读:
    计算几何学习8
    c语言数据结构学习心得——队列
    c语言数据结构学习心得——栈
    c语言数据结构学习心得——数据结构基本概念
    c语言数据结构学习心得——图
    c语言数据结构学习心得——树
    c语言数据结构学习心得——二叉树
    c语言数据结构学习心得——线性表
    Asp.net 2.0 Webpart 数据库的迁移
    BUGReport:datagrid带模板列绑定空数据集出错的问题
  • 原文地址:https://www.cnblogs.com/moonpool/p/5657367.html
Copyright © 2011-2022 走看看