当前位置: 首页 > news >正文

java web mvc-02-struts2

拓展阅读

Spring Web MVC-00-重学 mvc

mvc-01-Model-View-Controller 概览

web mvc-03-JFinal

web mvc-04-Apache Wicket

web mvc-05-JSF JavaServer Faces

web mvc-06-play framework intro

web mvc-07-Vaadin

web mvc-08-Grails

Struts2

Apache Struts是一个用于创建优雅、现代Java Web应用程序的免费、开源的MVC框架。

struts

Hello World

我的示例基于maven和struts2文档。
开始使用Struts2原型的推荐方式是使用原型目录。

mvn archetype:generate -DarchetypeCatalog=http://struts.apache.org/

Struts 2空白原型(“blank-archetype”)提供了一个最小但完整的Struts 2应用程序。
它演示了一些最基本的Struts 2概念。这是我的风格,我选择了这个。

使用

mvn clean install

来删除先前的文件并将JAR文件添加到您的存储库。

使用

mvn tomcat7:run

启动项目。或者将WAR文件放到Tomcat中。

您可能会遇到类似以下错误。

no plugin found for prefix 'tomcat 7' in the current project and in the plugin groups

别担心,这是解决方法。打开pom.xml,将以下代码添加到plugins中。

<plugin><groupId>org.apache.tomcat.maven</groupId><artifactId>tomcat7-maven-plugin</artifactId><version>${plugin.tomcat.version}</version><configuration><port>8080</port><path>/</path><uriEncoding>${project.build.sourceEncoding}</uriEncoding></configuration>
</plugin>

并将此代码添加到properties中。

<plugin.tomcat.version>2.2</plugin.tomcat.version>

好了,享受Struts2之旅。

Configuration Files

web.xml

web.xml文件中,Struts定义了它的FilterDispatcher,这是一个Servlet过滤器类,用于初始化Struts框架并处理所有请求。如下所示…

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="struts_blank" version="2.4"xmlns="http://java.sun.com/xml/ns/j2ee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"><filter><filter-name>struts2</filter-name><filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class></filter><filter-mapping><filter-name>struts2</filter-name><url-pattern>/*</url-pattern></filter-mapping></web-app>

在上面的示例中,我们将Struts 2调度程序映射到/*,因此Struts 2会处理所有传入的请求。这是因为Struts 2从其JAR文件中提供静态内容,包括Dojo JavaScript文件(如果使用S2.0或S2.1+中的Dojo插件)和用于生成HTML的Struts 2标签的FreeMarker模板。

自Struts 2.1.7以来,您可以提供一个逗号分隔的模式列表,当匹配请求URL时,过滤器将直接通过。这是通过配置选项struts.action.excludePattern完成的,例如在您的struts.xml中:

<struts><constant name="struts.action.excludePattern" value=".*unfiltered.*,.*\\.nofilter"/>...
</struts>

您可能会问,struts.xml是什么?

struts.xml

该框架的核心配置文件是默认的(struts.xml)文件,应存放在Web应用程序的类路径上(通常是/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>
</struts>

DTD是文档类型定义,定义了XML文档的结构以及合法的元素和属性。

DTD

我们可以将一个大的struts.xml文件分解成较小的部分吗?

  • 您可以在struts.xml中的<package>元素中交替使用<include>元素。配置对象将按出现的顺序加载。框架从上到下读取配置并在引用时按顺序添加对象。
<struts><include file="example.xml"/>...
</struts>

您可能会在struts.xml中找到这些,这是常量。

<constant name="struts.enable.DynamicMethodInvocation" value="false"/>
<constant name="struts.devMode" value="true"/>

常量提供了一种通过定义修改框架和插件行为的关键设置来自定义Struts应用程序的简单方法。

<package name="default" namespace="/" extends="struts-default"><default-action-ref name="index"/><action name="index"><result>/index.html</result></action></package>
  • package元素具有一个必需的属性,即name,它充当稍后引用包的键。

  • namespace属性将动作配置细分为逻辑模块,每个模块都有其自己的标识前缀。命名空间避免了动作名称之间的冲突。

  • extends属性是可选的,允许一个包继承一个或多个先前包的配置。

  • action映射可以指定一组结果类型、一组异常处理程序和一个拦截器堆栈。

在这里插入图片描述

http://www.lryc.cn/news/287388.html

相关文章:

  • 文件上传之大文件分块上传
  • 测试用例评审流程
  • 鸿蒙开发案列一
  • Vue实现图片预览,侧边栏懒加载,不用任何插件,简单好用
  • Spring依赖注入之setter注入与构造器注入以及applicationContext.xml配置文件特殊值处理
  • 碳排放预测 | Matlab实现LSTM多输入单输出未来碳排放预测,预测新数据
  • 手拉手JavaFX UI控件与springboot3+FX桌面开发
  • 02 分解质因子
  • 科技赋能智慧水利——山海鲸软件水利方案解析
  • C4.5决策树的基本建模流程
  • 本科毕业设计过程中应该锻炼的能力 (深度学习方向)
  • 深度学习——pycharm远程连接
  • 信号量机制解决经典同步互斥问题
  • java基础09-==和equals()的区别,附代码举例
  • qml与C++的交互
  • LabVIEW电路板插件焊点自动检测系统
  • 第十一站:多态练习ODU
  • 【深度学习】详解利用Matlab和Python中 LSTM 网络实现序列分类
  • Unity 工厂方法模式(实例详解)
  • 2024年美赛数学建模思路 - 案例:异常检测
  • 一键完成,批量转换HTML为PDF格式的方法,提升办公效率
  • 【重点问题】攻击面发现及管理
  • UE4外包团队:国外使用UE4虚幻引擎制作的十个知名游戏
  • 解决springboot+mybatisplus返回时间格式带T
  • 纯命令行在Ubuntu中安装qemu的ubuntu虚拟机,成功备忘
  • Vue的学习Day1_是什么以及两种风格
  • 磁悬浮人工心脏的不良事件分析:美国FDA数据库的启示
  • HarmonyOS(十二)——全面认识HarmonyOS三种渲染控制
  • SQL 系列教程(二)
  • CSS实现文本和图片无限滚动动画