MyEclipse中搭建Struts2开发环境
(尊重劳动成果,转载请注明出处:http://blog.csdn.net/qq_25827845/article/details/53205941 冷血之心的博客)
在MyEclipse中如何搭建Struts2开发环境?本文讲解一个入门级Demo,希望可以帮助更多的初学者。
1、首先下载Struts2.3.4版本,下载地址为:http://download.csdn.net/detail/wangzhaoa/4481100
下载之后解压,目录如下图所示:
src源代码目录:存放*.java文件,Struts2是一个开源项目,可在此存放所有的代码
doc文档目录:存放文档文件
lib库目录:存放提供给开发人员的jar文件,开发过程中需要将其加入到CLASSPATH中
apps为例子目录:存放Struts2给出的示例,都是*.war文件
2、新建一个Web项目Test,如下所示:
3、导入jar包:
如何找到所需 jar包?
在我们第一步下载的lib文件中,存放了我们所有的jar包,但是我们不能将其全部导入所建的Test项目,否则会报错。因为有一些东西你没有,而jar包中却存在。
我们打开第一步下载的apps文件夹,将其示例程序中的jar包拷贝到Test项目中的lib文件夹中。如下所示:
4、创建action、配置文件struts.xml、web.xml如下所示:
代码如下:
HelloAction.java如下:
package com.ywq;
import com.opensymphony.xwork2.ActionSupport;
public class HellloAction extends ActionSupport {
/**
* 1、每次访问Servlet时候,都会执行service方法
* 写一个类继承HttpServlet,重写类里面的方法
* 在web.xml中配置Servlet访问路径
*
* 2、访问action,每次访问action时候,都会执行execute方法
* 配置action访问路径
*/
@Override
public String execute() throws Exception {
return "OK";
}
}
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> <package name="form" extends="struts-default" namespace="/"> <action name="hello" class="com.ywq.HellloAction">
<result name="OK">index.jsp</result>
</action> </package> </struts>
web.xml如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>Test</display-name> <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> <welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
</web-app>
index.jsp如下:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>"> <title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head> <body>
在浏览器中请求hello.action,首先到配置文件struts.xml中寻找一个叫做“hello”的action <br>
然后找到其对应的class,默认执行其execute()方法。得到返回值OK,再次到struts.xml中找到result为OK的对应文件,即index.jsp,然后你就看到了我。
</body>
</html>
5、运行程序
将项目添加到Tomcat服务器中,启动服务器,在浏览器中输入:
或者输入:
出现一个页面,显示如下:
则程序运行完毕。你的第一个Struts2程序已经跑起来了咯。
下边介绍核心配置文件struts.xml :
主要有三个标签:package、action、result
package标签:
(1) 类似于代码包,区别不同的action,要配置action,必须首先写package标签,在package里面才能配置action
(2)package标签属性
- name属性
- name属性值根功能本身没有关系的,
- 在一个配置文件中可以写多个package标签,name属性值不能相同的
- extends属性
- 属性值固定的,struts-default
- 写了这个属性之后,在package里面配置的类具有action功能
- namespace属性
-namespace属性值和action标签里面的name属性值构成访问路径
action标签:
(1)action标签配置action访问路径
(2)action标签属性
- name属性
- namespace属性值和action标签里面的name属性值构成访问路径
- 在package标签里面写多个action标签,但是action的name属性值不能相同的
- class属性
- action全路径
- method属性
- 比如在action里面默认执行的方法execute方法,但是在action里面写其他的方法
- 让action里面多个方法执行,使用method进行配置
result标签:
(1)根据action的方法返回值,配置到不同的路径里面
(2)result标签属性
- name属性
- 和方法返回值一样
- type属性
- 配置如何到路径中(转发或者重定向)
- type属性默认值 做转发操作
如果对你有帮助,记得点赞哈~欢迎大家关注我的博客,随时加群交流技术哈~
MyEclipse中搭建Struts2开发环境的更多相关文章
- 手把手在MyEclipse中搭建Hibernate开发环境
(尊重劳动成果,转载请注明出处:http://blog.csdn.net/qq_25827845/article/details/53414303冷血之心的博客) 在MyEclipse中如何搭建Hib ...
- struts2系列(一):struts2入门(struts2的产生、struts2的工作流程、搭建struts2开发环境)
一. struts2的产生 struts1的缺点: 1. ActionForm过多,而且这个ActionForm在很大程度上又和VO(POJO)重复 ...
- 在 Ubuntu 13.10 中搭建Java开发环境 - 懒人版
本文记录我在Ubuntu 13.10中搭建Java开发环境. 本文环境: Ubuntu 13.10 x64运行在Win7下的VMware Workstation 10中. 1. 安装JDK与JRE s ...
- [转]在Eclipse中搭建Python开发环境
在Eclipse中搭建Python开发环境 来自: http://hi.baidu.com/hqwfreefly/blog/item/2543181d0afd9604314e150e.html 前言 ...
- 在Eclipse中搭建Python开发环境
在Eclipse中搭建Python开发环境 来自: http://hi.baidu.com/hqwfreefly/blog/item/2543181d0afd9604314e150e.html 前言 ...
- Arduino 002 --- 在Ubuntu(Linux) 中搭建Arduino开发环境
在Ubuntu/Linux 中搭建Arduino开发环境 我的Ubuntu系统:Ubuntu 14.04.10 TLS 32位 需要安装的Arduino的版本:Arduino 1.6.11(最新版本) ...
- 在SublimeText3中搭建Verilog开发环境记录(二)
接上文 SublimeText3中搭建Verilog开发环境记录(一) 在实现了基础功能后,继续添加插件,让功能更为完善: 快速创建代码模块(snippet) Ctrl+鼠标左键实现模块跳转 通过iV ...
- 如何在 VS Code 中搭建 Qt 开发环境
前言 VS Code 高大上的界面.强大的智能联想和庞大的插件市场,着实让人对他爱不释手.虽然可以更改 Qt Creator 的主题,但是 Qt Creator 的代码体验实在差劲.下面就来看看如何在 ...
- 在Eclipse中搭建Android开发环境
忙活了两天多的时间,终于在Eclipse中成功搭建了Android开发环境,着实不易啊!! 原本我用的编译器是MyEclipse的,但是从网上找不到如何在MyEclipse中搭建环境,于是乎就换了Ec ...
随机推荐
- OS之内存管理 --- 虚拟内存管理(二)
关于虚拟内存管理之前的请看:OS之内存管理 - 虚拟内存管理(一) 帧分配 每个进程对的最小帧数是由操作系统的体系结构决定的,但是最大帧数是由可用物理内存的数量决定的.所以在这之间,对于进程的帧的分配 ...
- app绘制手势密码 、九宫格分解
什么是九宫格? 即是我们常见的手势绘制.一共有9个点,让我们进行绘制手势.我们手动操作的时候,通过是按住第一个点,然后移动到最后一点,然后松开,就完成手势的操作,那么,如果要用自动化代码,来让其自动绘 ...
- 【disruptor】1、关于disruptor中的SequenceBarrier对象
首先这个类的uml结构在disruptor中是这样的,里面只有部分的属性对象和函数内容,具体有什么作用,用到了再说,用不到我也不会... 1.那么这个对象有什么用呢? 注意我们这个类中有哪些属性: 我 ...
- oracle ASM安装过程中UDEV实现磁盘绑定
UDEV相较于ORACLE 自己的ASMlib 相对比较成熟. 文章转载自: Maclean Liu的个人技术博客 [http://www.oracledatabase12g.com/] 在< ...
- java.lang.ClassCastException: java.math.BigDecimal cannot be cast to java.lang.String错误的解决方法
mmobjectid是在Oracle数据库中对应的是Number类型的,在JavaBean中定义的是Long类型的. List<BigDecimal> mmobjidAllFromMars ...
- 如何在Notepad++里正确设置java环境(图文环境)
不多说,直接上干货! 这款软件非常好用!!! Notepad++软件的下载与安装步骤(图文详解) 欢迎大家,加入我的微信公众号:大数据躺过的坑 人工智能躺过的坑 同时,大家可 ...
- vue子组件传参给父组件
关于父组件传参给子组件,可以看我另一篇文章 教程开始: 我们要实现的效果是:在子组件的Input框输入,父组件中实时更新显示.(也就是把子组件中的数据传给父组件) 一.子组件代码 template部分 ...
- 如何设置httpd-mpm-conf的参数
原文链接:http://blog.sina.com.cn/s/blog_626998030102wohs.html 首先确定apache是使用哪种工作模式是prefork模式还是worker模式查看方 ...
- Linux 中计划任务-at-cron
概念-计划任务:在某个时段自动执行某个任务 at:只执行一次 语法:at 时间 服务:atd 必须开启 如没有:yum install at -y 查看服务状态是否开启 systemctl ...
- 「每日一码」(精品代码,质量保证)empty和undefined
将每天看到的优秀的代码或者特别的实现,记录下来 2019-2-26 empty和undefined 数组的filter,以下输出结果是什么 var arr = [1,2,3]; arr[10] = 9 ...