java--Struts2入门示例教程(五)

本文详细介绍了在win8系统环境下,使用myeclipse10和tomcat7搭建Struts2框架的过程,包括下载Struts2框架、配置环境、创建web项目、修改web.xml文件、编写Action实现类和配置struts.xml等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天在做一个Struts2的简单实例,楼主看的是大学教科书-《JavaEE基础实用教程》第三章的例子。
由于书有些老了,加上Struts框架又做了一些更新。所以有些地方需要拿出来说下,让新人伙伴们能少走点弯路,更不要~~因为运行后的报错会灰心丧气放弃学习的信心~
配置:win8+myeclipse10+tomcat7

步骤一. 下载Struts2框架
版本都可以的~
下载地址:struts-2.3.14-all.zip

步骤二. 建立一个web项目
打开myeclipse-File-new-Web Project-Struts2.0

步骤三. 加载Struts2基本类库
书上原话是:先下载Struts的jar包(myeclipse10已经对Struts内部集成了,其实是可以直接系统导入的,这里我们先按原始方法来)。书上介绍的是要用到Struts2的5个主要类库:

  • commons-logging-1.1.1.jar
  • freemarker-2.3.19.jar
  • ognl-3.0.6.jar
  • struts2-core-2.3.14.jar
  • xwork-core-2.3.14

时过境迁,2016了都。再用这5个我们就会发现报了一堆的错误~,上网查阅了一下,基础包变多了~
这里写图片描述
这张图是基于我的程序添加的包,小伙伴们遇到报错也不用慌,报错信息复制下,看百度上说少什么包~~导入什么包就成了。真不行一个笨方法~把Struts-lib下面所有的包都放进去。至于包的导入方法,我建议直接把要导入的包,ctrl-c复制后,来到项目的-WebRoot-WEB-INF-lib,点lib–ctrl-v,应该会跳出来一个提示,建议选择直接copy,不要复制路径~。配置环境的坑爹工作做完了。下面来看~代码

步骤四. 修改web.xml文件(项目创建默认有web.xml)

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" 
    xmlns="http://java.sun.com/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
    http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
  <display-name></display-name> 
  <welcome-file-list>
    <welcome-file>hello.jsp</welcome-file>
  </welcome-file-list>
  <filter>  
    <filter-name>struts2</filter-name>  
    <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>  
  </filter>  
  <filter-mapping>  
    <filter-name>struts2</filter-name>  
    <url-pattern>/*</url-pattern>  
  </filter-mapping> 
</web-app>

需要的注意的点,参考自-ALCAT-博客

这里面填入的类, 2.1.3版本后改用

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

2.13之前的版本用的还是,请伙伴们考虑清楚~

<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>

Since Struts 2.1.3, use StrutsPrepareAndExecuteFilter instead or StrutsPrepareFilterand StrutsExecuteFilter if needing using the ActionContextCleanUp filter in addition to this one..即,从Struts 2.1.3起FilterDispatcher已被标注为过时的,改用StrutsPrepareAndExecuteFilter。

步骤五. 创建hello.jsp文件(WebRoot-new-jsp-hello.jsp)

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head> 
    <title>Struts2应用</title>
  </head>
  <body>
    <form action="struts.action" method="post">
    请输入姓名:<input type="text" name="name"/><br>
    <input type="submit" value="提交" /> 
    </form>
  </body>
</html>

步骤六. Action实现类(src-new-class,PackageName:org.action–className:StrutsAction)

package org.action;

import java.util.Map;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

public class StrutsAction extends ActionSupport {
    private String name;
    public String getName(){
        return name;
    }
    public void setName(String name){
        this.name = name;
    }
    public String execute() throws Exception{
        if(!name.equals("helloworld")){
            Map request = (Map)ActionContext.getContext().get("request");
            request.put("name",getName());
            return "success";
        }else{
            return "error";
        }
    }

}

步骤七. 创建并配置struts.xml文件
配置strust2要调用的action。直接新建在src目录下,那样部署的时候会自动发布到WEB-INF/classes目录下,或者直接创建在WEB-INF/classes目录下面。

<?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>  
        <package name="default" extends="struts-default">  
            <action name="struts" class="org.action.StrutsAction">  
                <result name="success">/welcome.jsp</result> //成功跳转welcome.jsp
                <result name="error">/hello.jsp</result>//错误转到welcome.jsp
            </action>  
        </package>  
    </struts>  

其中,package元素,作用类似于Java包的机制,他是用于分门别类的一个工具,extends属性如他的名字一样,它继承了struts-default这个包的所有信息,一般我们自己创建一个包最好都继承它,因为他为我们提供了绝大部分的功能,你可以在struts2-core的jar包中的struts-default.xml文件中找到这个包。action元素对应与你的表单,例如你的表单的action=”welcome”,那么该表单提交后就会将参数交予action的name=”welcome”的实现类处理。result元素为action的结果,它由动作类返回的控制字段选择。

步骤八.创建welcome.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>

<!-- @taglib表明引用标签 prefix="s" 引用的名称在页面可以使用,就像java中生成的一个对象名,以后调用的时候直接使用<s:xxx/>就可以了,uri="/struts-tags"%表示标签库的路径。相当于import一个具体的类 --%>

<%@ taglib uri="/struts-tags" prefix="s" %>
<!DOCTYPE>
<html>
  <head>
    <title>strust2应用</title>
  </head>

  <body>
    hello <s:property value="#request.name"/>!
  </body>
</html>

步骤九. 部署和运行
部署后运行tomcat,”http://localhost:8080/Struts2.0/hello.jsp“.
这里写图片描述
- 输入helloworld会重新回到hello.jsp
- 输入非helloworld的数值,会跳转到welcome.jsp.
这里写图片描述
引用文献:
Struts2入门示例教程
——————————-我是分割线———–2016.3.24午—————

至此,简单的Struts2实例的步骤方法介绍完毕.(具体语法,小白楼主研究后会慢慢添加注释~)
有疑问的小伙伴,欢迎留言~

概述 4 Framework概念 4 Struts的概念和体系结构 5 Struts的与Web App的关系 5 Struts的体系结构 5 从视图角度(View) 6 从模型角度(Model) 6 从控制器角度(Controller) 6 Struts的基本组件包 6 Struts framework的工作原理和组件 7 Struts ActionServlet控制器对象 8 Struts Action Classes 8 Struts Action Mapping 9 使用ActionForward导航 10 Struts ActionForm Bean捕获表单数据 11 Struts的其他组件 12 Validation Framework for Struts 12 Struts TagLib 12 BeanUtils 12 Collections 13 Digester 13 Struts配置文件简介 13 有关Struts Controller及其相关的的配置描述 13 有关struts tag lib的配置描述 14 有关Struts Action Mapping的配置描述 14 Form-bean元素 15 Action元素 15 Struts高级特性(Struts Advanced Feature) 17 验证 17 使用异常处理声明 19 使用应用模块(Application Modules) 21 把JSP放到WEB-INF后以保护JSP源代码 22 使用 Prebuilt Action类提升开发效率 23 Struts标记库 25 定制JSP标记 25 资源束 26 Bean标记 27 Bean复制标记 27 定义脚本变量的标记 28 显示Bean属性 29 消息标记和国际化 29 逻辑标记 30 条件逻辑 30 重复标记 32 转发和重定向标记 33 HTML标记 34 显示表单元素和输入控件 34 显示错误信息的标记 38 其他HTML标记 39 模板标记 39 一个简单的示例 41 Struts的安装 41 第一个实验:简单的JSP页 41 第二个实验:struts的国际化 42 struts中的Forms 45 struts:介绍ActionForm 49 分离Book和BookForm的一个好方法 51
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值