一、新建一个web项目,命名为:struts2

二、导入strut2所需的jar包 所需jar下载:http://pan.baidu.com/s/1dDxP4Z3

三、配置struts2的启动文件,在web.xml添加如下内容

    <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>

四、在src包下,新建struts.xml和struts.properties这2个文件

在struts.xml添加如下内容

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
<!-- 请求参数的编码方式 -->    <constant name="struts.i18n.encoding" value="UTF-8"/>    <!-- 当struts.xml改动后,是否重新加载。默认值为false(生产环境下使用),开发阶段最好打开  -->    <constant name="struts.configuration.xml.reload" value="true"/>    <!-- 是否使用struts的开发模式。开发模式会有更多的调试信息。默认值为false(生产环境下使用),开发阶段最好打开  -->    <constant name="struts.devMode" value="true"/>      <!-- 设置浏览器是否缓存静态内容。默认值为true(生产环境下使用),开发阶段最好关闭  -->    <constant name="struts.serve.static.browserCache" value="false" />   <!--  含有Action类的路  从action包开始--><constant name="struts.convention.package.locators" value="action" /><package name="json" extends="json-default"></package></struts>  

在struts.properties文件添加如下内容(指定结果页面的路径)

struts.convention.result.path=/

五、现在我们已经完成了strut2的环境配置了,接下来说介绍个使用的demo

demo1

在src下新建一个包命名为:com,在com包下新建一个包命名为:action,在action包下新建一个包命名为:demo

在demo 包下新建一个IndexAction.java的类

package com.action.demo;import org.apache.struts2.convention.annotation.ParentPackage;
import com.opensymphony.xwork2.ActionSupport;@ParentPackage(value = "struts-default")
public class IndexAction extends ActionSupport {/*** */private static final long serialVersionUID = -903752277625921821L; private String name; @Override public String execute() { setName("stuts2 零配置的实现"); return SUCCESS; } public String getName() { return name; } public void setName(String name) { this.name = name; } }

在WebRoot目录下新建一个文件夹命名为:demo

在WebRoot/demo目录新建一个index.jsp 内容如下

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@taglib prefix="s" uri="/struts-tags"%>
<%
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><s:property value="name"/> </body>
</html>

启动tomcat,在浏览器输入:http://localhost:8080/struts2/demo/index

demo2

在src/com/action/demo包下新建一个类IndexTestAction.java

package com.action.demo;import org.apache.struts2.convention.annotation.Action;
import com.opensymphony.xwork2.ActionSupport;@Action
public class IndexTestAction extends ActionSupport {/*** */private static final long serialVersionUID = -903752277625921821L;private String name; @Override public String execute() { setName("stuts2 零配置的实现,路径配置," + "IndexTestAction对应的结果界面:WebRoot/demo/index-text.jsp action去掉," + "中间有大写的转换成小写,加上'-' " + "例如:TestDemoAction 结果页面的是:test-demo.jsp"); return SUCCESS; } public String getName() { return name; } public void setName(String name) { this.name = name; } }

在WebRoot/demo目录新建一个index-test.jsp 内容如下

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@taglib prefix="s" uri="/struts-tags"%>
<%
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><s:property value="name"/> </body>
</html>

启动tomcat,在浏览器输入:http://localhost:8080/struts2/demo/index-test

转载于:https://www.cnblogs.com/wuweidu/p/3841297.html

struts2 零配置相关推荐

  1. Struts2 Convention Plugin ( struts2 零配置 )

    Struts2 Convention Plugin ( struts2 零配置 ) convention-plugin 可以用来实现 struts2 的零配置. 零配置的意思并不是说没有配置,而是通过 ...

  2. Struts2零配置属性详解(2)

    2019独角兽企业重金招聘Python工程师标准>>> Struts2 零配置属性详解 一.插件包 直接引入myEclipse里面的struts code 包即可. struts2- ...

  3. Struts2零配置 Zero Config+CodeBehind

    Zero Config能根据web.xml中配置的actionPackages自动扫描所有Action类,并猜测其NameSpace. 再利用CodeBehind猜测Result指向的jsp,实现了s ...

  4. Struts2零配置介绍(约定访问)

    从struts2.1开始,struts2 引入了Convention插件来支持零配置,使用约定无需struts.xml或者Annotation配置 需要 如下四个JAR包 插件会自动搜索如下类 act ...

  5. 【struts2】struts2的零配置

    零配置(zero configuration)的意思是不使用任何配置文件部署struts2应用,如struts.xml.struts.properties等.零配置并不是真的"零配置&quo ...

  6. 简述Struts2 Convention零配置

    从struts2.1开始,struts2不再推荐使用Codebehind作为零配置插件,而是改为使用Convention插件来支持零配置,和Codebehind相比,Convention插件更彻底,该 ...

  7. 零配置 之 Spring 概述

    转载自  [第十二章]零配置 之 12.1 概述 --跟我学spring3 12.1  概述 12.1.1  什么是零配置 在SSH集成一章中大家注意到项目结构和包结构是不是很有规律,类库放到WEB- ...

  8. [JavaWeb基础] 007.Struts2的配置和简单使用

    1.框架简介 采用Struts能开发出基于MVC(Model-View-Controller)设计模式的应用构架,用于快速开发Java Web应用.Struts实现的重点在C(Controller), ...

  9. Spring解析,加载及实例化Bean的顺序(零配置)

    点击上方蓝色"方志朋",选择"设为星标"回复"666"获取独家整理的学习资料! 作者:jb_hz blog.csdn.net/qq_2752 ...

最新文章

  1. c盘扩展卷是灰色的_银行电脑win7-C盘满了怎么办
  2. npm ERR! code ELIFECYCLE
  3. linux下的加密解密学习
  4. 关键字 'USER' 附近有语法错误
  5. 关于烂代码的那些事——什么是好代码
  6. H5页面适配所有iPhone和安卓机型的六个技巧
  7. easymock教程_EasyMock教程–入门
  8. 目标检测再次革新!图灵奖得主团队提出Pix2Seq,将Detection变成了Image Captioning...
  9. 数组的基本操作(1)
  10. 关于uboot中tftp上传内存数据到tftp服务器
  11. JetBrains(Intellij, pycharm)多行编辑模式
  12. java简历项目经验大全(java商城项目经验简历)
  13. 7714天,王小川正式卸任搜狗CEO!网友:别了。。。
  14. UG NX二次开发 - CAM 获取和设置公差的方法,含内外公差、边界内外公差的设置方法
  15. iOS开发 - 使用IJKPlayer时,关于需求要边下边播的缓存功能,退回来后播放缓存不再耗流量
  16. ajax请求是宏任务还是微任务_好程序员web前端学习路线分享了解AJAX是什么
  17. JAVA学习笔记(三)
  18. C/C++ 的平方和开平方函数
  19. Java制作一个简单地小游戏
  20. 机器学习:计算机学习西洋跳棋

热门文章

  1. matlab判断文件是否损坏,检查 MATLAB 代码文件是否有问题
  2. python属性访问权限_python 面向对象-访问权限修饰符
  3. jekenis父子结构项目打包_maven 父子工程打包 并且上传linux服务器
  4. left join 后数据变多_Flink 双流 Join 的3种操作示例
  5. Linux如何在栈上分配内存,Java堆与栈内存分配及String小记
  6. python线下课程厦门_厦门python课程
  7. 3w并发mysql架构_(DBA之路【一】)mysql 基本架构
  8. qmediaplayer获取流类型_Android MediaPlayer类详解
  9. python 过滤相似图片_求教 python 网站爬虫过滤出图片 url 的问题
  10. android 修改 dpi_鼠标DPI是什么意思?鼠标CPI和DPI之间区别知识科普