Struts2问题总结

Struts2框架中的路径问题深入解析 Struts2作为一个广泛使用的Java Web应用程序框架,从其前身Struts1开始,已经发展成为了一个成熟且功能丰富的MVC(Model-View-Controller)框架。Struts2不仅继承了Struts1的稳定性和易用性,还引入了WebWork框架的先进特性,使得开发者能够更方便地构建可维护、可扩展的Web应用程序。从最初的版本到如今的稳定版,Struts2的演进伴随着IT技术的发展,满足了不断变化的业务需求和技术挑战。 阅读详情

Eclipse下struts2.5环境搭建与struts2.3的区别

在struts2.3中,需要导入9个常用jar包。
(1)struts2-core-2.x.x.jar :Struts 2框架的核心类库
(2)xwork-core-2.x.x.jar :XWork类库,Struts 2在其上构建
(3)ognl-3.x.x.jar :对象图导航语言(Object Graph Navigation Language),struts2框架通过其读写对象的属性
(4)freemarker-2.3.x.jar :Struts 2的UI标签的模板使用FreeMarker编写
(5)commons-logging-1.x.x.jar :ASF出品的日志包,Struts 2框架使用这个日志包来支持Log4J和JDK 1.4+的日志记录。
(6)commons-fileupload-1.2.1.jar 文件上传组件,2.1.6版本后必须加入此文件
(7)commons-io-2.0.1.jar 新版本的fileupload也必须加入此包
(8)commons-lang3-3.1.jar
(9)javassist-3.11.0.GA.jar
但是在struts2.5中是没有xwork那个jar包的,所以不用导入也找不到,更不用再去低版本里去单独下载这个包,因为它和struts-core包合并了。其次,当我使用这8个包部署项目后,启动Tomcat会报错,原因是还少了log4j和slf4j这两个jar包,导入后就可以解决问题了。所以前后一共是10个jar包。

web.xml文件过滤器的配置

配置web.xml文件,在编写标签时,2.3版本是
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter。
2.5写法是org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter,它与2.3版本相比少了一个ng包。

struts.xml文件的配置

编写struts.xml文件时需要struts的dtd版本头部信息,这个版本信息要与struts版本对应,
2.5版本的是

<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN" "http://struts.apache.org/dtds/struts-2.5.dtd">

2.3版本的将2.5改成2.3即可

sturt2解决 Error setting expression ‘XXX’ with value ‘xxx’

第一种可能:
struts2中表单提交按钮:

<input type="Submit" name="Submit" value=" 查 询 " />

这样会报题目的错误.其实把submit的name属性删掉或者

<input type="button" name="Submit" value=" 查 询 " onclick="document.form.submit();"/>

都是可以解决的,估计凡是在struts2中没有定义getter,setter方法的form中的input都要被抛出异常

第二种可能:
原来的pojo类中重写了构造方法,却没有提供默认的空构造函数。
加上public Book(){};即可。

java.lang.UnsupportedClassVersionError

java.lang.UnsupportedClassVersionError: org/apache/struts2/dispatcher/filter/StrutsPrepareAndExecuteFilter : Unsupported major.minor version 51.0 (unable to load class org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter)

具体情况应该是tomcat的jre版本不支持编译,我原来用的jre6,升级到jre8就可以了

JSR 356 WebSocket (Java WebSocket 1.1) support is not available when running on Java 6

jre版本太低,使用jre8即可

Tomcat “At least one JAR was scanned for TLDs yet contained no TLDs”

方法一:

修改$CATALINA_BASE/conf/catalina.properties文件
添加org.apache.el.parser.SKIP_IDENTIFIER_CHECK=true选项。

方法二:

1.调整Tomcat对应类的log级别

修改${tomcat}/conf/log4j.properties

    ##解除类org.apache.jasper.compiler.TldLocationsCache的log  
    org.apache.jasper.compiler.TldLocationsCache.level = FINE  

2.调整${tomcat}/conf/catalina.properties,将提示的jar添加到不扫描清单中

    tomcat.util.scan.DefaultJarScanner.jarsToSkip=\  
    bootstrap.jar,commons-daemon.jar,tomcat-juli.jar,\  
    annotations-api.jar,el-api.jar,jsp-api.jar,servlet-api.jar,\  
    catalina.jar,catalina-ant.jar,catalina-ha.jar,catalina-tribes.jar,\  
    jasper.jar,jasper-el.jar,ecj-*.jar,\  
    tomcat-api.jar,tomcat-util.jar,tomcat-coyote.jar,tomcat-dbcp.jar,\  
    tomcat-jni.jar,tomcat-spdy.jar,\  
    tomcat-i18n-en.jar,tomcat-i18n-es.jar,tomcat-i18n-fr.jar,tomcat-i18n-ja.jar,\  
    tomcat-juli-adapters.jar,catalina-jmx-remote.jar,catalina-ws.jar,\  
    tomcat-jdbc.jar,\  
    tools.jar,\  
    commons-beanutils*.jar,commons-codec*.jar,commons-collections*.jar,\  
    commons-dbcp*.jar,commons-digester*.jar,commons-fileupload*.jar,\  
    commons-httpclient*.jar,commons-io*.jar,commons-lang*.jar,commons-logging*.jar,\  
    commons-math*.jar,commons-pool*.jar,\  
    jstl.jar,\  
    geronimo-spec-jaxrpc*.jar,wsdl4j*.jar,\  
    ant.jar,ant-junit*.jar,aspectj*.jar,jmx.jar,h2*.jar,hibernate*.jar,httpclient*.jar,\  
    jmx-tools.jar,jta*.jar,log4j*.jar,mail*.jar,slf4j*.jar,\  
    xercesImpl.jar,xmlParserAPIs.jar,xml-apis.jar,\  
    junit.jar,junit-*.jar,ant-launcher.jar,\  
    json-lib-*.jar,poi-*.jar  

注意点:
1.如果使用eclipse server插件、Sysdeo tomcat插件启动Tomcat,此配合可能无效

2.步骤1调整完后,最好清除下以下两个文件夹

${tomcat}/conf/Catalina

${tomcat}/work/Catalina

3.尽量使用 * 实现模式匹配,以避免因jar版本升级带来的重复修改代价

Tomcat “Offending class: javax/servlet/Servlet.class”

webapp中WEB-INFO/lib下,有重复的servlet包。将servlet包从webapp的部署文件中删除以后。重启。

Tomcat 启动后先将tomcat/common/lib目录下的jar包全部读入内存,如果webapps目录里的应用程序中WEB-INF/lib目录下有相同的包,将无法加载,估计不同版本的包之间也会造成类似问题。
因此建议尽量不要把jar包放入tomcat/common/lib目录下,应该放入WEB- INF/lib目录下。

Tomcat文件目录

/bin:存放启动和关闭tomcat的脚本文件;

/conf:存放tomcat的各种配置文件,比如:server.xml

/server/lib:存放tomcat服务器所需要的各种jar文件(jar文件只可被tomcat 服务器访问)

/server/webapps:存放tomcat自带的两个web应用:admin应用和manager应用。

/common/lib:存放tomcat服务器以及所有web应用都可以访问的jar文件夹(web和tomcat服务器都可访问此jar)

/shared/lib:存放web都可访问的jar文件。(可以被所有的web访问,但不能被tomcat访问)

/logs:存放tomcat的日志文件

/webapps:当发布web应用时,默认情况下把web应用文件放于此目录下

/work:tomcat把由jsp生成的Servlet放于此目录

xwork各版本的jar包 xwork-1.1.1.jar, xwork-1.1.jar, xwork-1.2.1.jar, xwork-1.2.3.jar, xwork-2.0.0.jar, xwork-2.0.1.jar, xwork-2.0.3.jar, xwork-2.0.4.jar, xwork-2.0.5.jar, xwork-2.0.6.jar, xwork-2.0.7.jar, xwork-2.1.0.jar, xwork-2.1.1.jar, xwork-2.1.2.jar, xwork-core-2.1.4-javadoc.jar, xwork-core-2.1.4-sources.jar, xwork-core-2.1.4.jar, xwork-core-2.1.5-sources.jar, xwork-core-2.1.5.jar, xwork-core-2.1.6-sources.jar, xwork-core-2.1.6.jar, xwork-core-2.2.1.1.jar, xwork-core-2.2.1.jar, xwork-core-2.2.3.1.jar, xwork-jar.jar, xwork-src-1.2.1.jar, xwork-tiger-1.2.1.jar, xwork-tiger-1.2.3.jar, xwork-tiger-src-1.2.1.jar, xwork-tiger.jar, xwork.jar, xwork2.jar 立即下载

相关推荐

FLUKA软件在Ubuntu的安装指南(亲测有效)

FLUKA其强大的蒙特卡洛模拟能力使得用户能够模拟复杂的辐射相互作用过程

chencheng1127的博客 2883

java报错356,tomcat 7 启动报错JSR 356 WebSocket (Java WebSocket 1.1) support is not available when running ...

日志:INFO: JSR 356 WebSocket (Java WebSocket 1.1) support is not available when running on Java 6. To suppress this message, run Tomcat on Java 7, remove the WebSocket JARs from $CATALINA_HOME/lib or ad...

weixin_33185261的博客 2019

YOLOv8 + TensorRT 实战:手把手教你用 C++ 实现实时视频流目标检测(附完整项目代码)

本文详细介绍了如何将YOLOv8与TensorRT结合,通过C++实现实时视频流目标检测的全流程。从环境配置、模型转换优化到视频处理架构设计,手把手教你构建高性能检测系统,并附完整项目代码。特别针对Windows平台下的TensorRT模型加速部署提供了实用技巧和性能优化方案。

weixin_29051193的博客 345

Struts2.0.11升级到2.5.30

Struts2.0.11升级到2.5.30

qq_38701464的博客 1669

D触发器版图设计的艺术:最小化面积与最大化性能的平衡之道

本文探讨了D触发器版图设计中如何平衡最小化面积与最大化性能的核心挑战。通过分析晶体管布局、互联优化、时钟分布等关键策略,结合先进制程下的功耗与信号完整性考量,为数字IC工程师提供了从基础优化到制造验证的实用解决方案,助力实现高性能、低面积的芯片设计。

aa123的博客 909

电竞护航系统成品搭建俱乐部点单小程序开发三角洲小程序搭建

电竞护航系统成品搭建俱乐部点单小程序开发三角洲小程序搭建

dapengglove的博客 1681

Struts2升级2.5.30的那些坑

1.版本修改 将pom.xml 文件修改为2.5.30版本 <properties> <struts2-version>2.5.30</struts2-version> </properties> <dependencies> <dependency> <groupId>org.apache.struts</groupId> <artifactId>s

weixin_44254243的博客 1万+

STM32串口通信实战:从CubeMX配置到printf重定向全解析

串口通信是嵌入式系统中最基础且广泛使用的数据交换方式,它基于异步串行通信原理,通过TX(发送)和RX(接收)两根信号线实现设备间的全双工通信。其技术价值在于协议简单、硬件成本低、可靠性高,是单片机与上位机调试、传感器数据采集、设备控制等场景的首选方案。在STM32等ARM Cortex-M系列MCU中,USART外设通过硬件自动处理时序,大大减轻了CPU负担。本文聚焦于嵌入式竞赛与开发中的高频需求,以STM32G431RBT6为例,详解通过CubeMX配置USART1、实现按键触发数据发送、并完成print

weixin_30603633的博客 545

在linux上的Tomcat服务器上部署java项目

在tomcat上部署java项目本来觉得挺简单的,但是遇到若干问题,总结下。1、启动时候报错 JSR 356 WebSocket (Java WebSocket 1.1) support is not available when running on Java 6. To suppress this message, run Tomcat on Java 7, remove the WebSoc...

阿拉蕾的博客 815

从“氛围编程“到“智能体工程“:AI编程范式的认知跃迁与工程实践

摘要: 2026年,ClaudeCode负责人鲍里斯·切尔尼提出用“智能体工程”(Agent Engineering)替代流行的“氛围编程”(Vibe Coding),认为后者过于主观,无法体现AI编程的系统化与工程化本质。智能体工程强调记忆系统、工具编排、任务分解、可观测性等核心技术,将AI编程从“玄学辅助”升级为可度量、可规模化的工程学科。本文通过对比术语差异、构建知识体系,并结合代码实例(如带记忆系统的代码生成Agent和可观测性系统),展示了智能体工程的实际应用。行业案例(如ClaudeCode的并

yyq916的博客 1060

ISO 26262中的失效率计算:Mission profile的使用

Mission profile:任务剖面,即产品在完成规定任务这段时间内所经历的时间和环境的时序描述;集成电路在工作时环境温度是在不停变化的,同时也存在运行状态和非运行状态;为此标准提出了根据任务剖面(Mission profile)以及集成电路的实际结温来评估热幅度变化、循环温度幅值等因素的影响;汽车电子元器件相关的Mission profile参考IEC TR 62380:Table 11。

weixin_47071127的博客 4807

struts版本升级(2.3-2.5)总结

升级struts2.5版本时,工程的jdk版本需要1.7以上。 1、更换jar包 在struts2.5版本中xwork-core这个类库已经包含在struts2-core中,所以在此次升级中移除。 如果引用了其他struts2-x-plugin类库,也需要进行相应更新。 struts2.5版本开始使用log4j2日志系统,引入log4j-1.2-api-2.9.1可以避...

xiaolegeaizy的博客 3536

【学习系列】SAP RAP 2:创建第一个RAP应用

本文介绍了从零开始创建基于SAP RAP(ABAP RESTful Application Programming Model)的Fiori应用的完整流程。首先说明了学习RAP需要结合官方文档和教程,并提供了相关资源链接。文章详细讲解了开发环境的准备要求,包括系统版本、开发工具和基本知识。重点演示了如何通过8个步骤创建支持CRUD操作和草稿功能的RAP应用:1)创建数据库表;2)定义CDS视图实体;3)创建投影视图;4)定义行为;5)创建行为投影;6)定义服务;7)绑定服务;8)添加UI注解。

DeveloperMrMeng的博客 1496

struts2编码问题

ps:在使用struts2框架的时候,涉及到许多中文字符参数,在传送到服务器端进行使用就会产生乱码问题,这使我很困惑,所以花费时间专门去了解编码的问题,以下是所得的一些感悟和总结,进行记录。 在表单中进行提交数据有两种方式,一种是get方法,另外一种是post方法,分别来说明不同方式带来的不同的编码问题(以下前提是在整个web项目都统一编码格式为uft-8)。 (一)、ge...

深院斜月虫鸣 715

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Struts2配置问题

初学Struts,过了一遍马士兵讲的helloworld,照着网上的教程按部就班走了一遍过程,遇到了一些问题,折腾一下午解决之,特写一篇博文记录之。 (MyEclipse10+Tomcat7+Struts-2.3.16.3) 主要表现为发布Struts2应用后在浏览器中输入url(Tomcat启动正常)后显示404 问题一:Unable to load configuration. -act

上善若水 1009

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

struts2联网问题

struts遇到的问题: 这个问题只要你机子联网就可以跑起来,但是你一没网就报错了..具体如下: 2010-1-24 21:51:42 org.apache.tomcat.util.digester.SetPropertiesRule begin警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting pr...

149

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Struts2注解开发问题

刚刚学习Struts2注解就遇到了问题,tomcat启动报错: java.lang.NoSuchMethodError: com.opensymphony.xwork2.util.finder.UrlSet.includeClassesUrl(Lcom/opensymphony/xwork2/util/finder/ClassLoaderInterface;)Lcom/opensymphony/

qq_31318181的博客 992

Struts2中遇到的问题

Struts2中遇到的问题 com.opensymphony.xwork2.inject.ContainerImpl$MissingDependencyException: No mapping found for dependency [type=com.op加粗样式ensymphony.xwork2.ObjectFactory, name=‘default’] in public void c...

qq_43383240的博客 261

Struts2和Spring整合中出现的问题

今天做了一个Struts2和Spring整合的练习,中间出了一点问题,贴出来供其它人参考。(该文章写于2010年) 代码写好后启动Tomcat服务器时报错: 严重: Exception starting filter struts2 java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeExcepti...

风萧萧兮易水寒,壮士一去兮不复还 435

前期配置Struts2或者运行action出现问题

我刚看Struts2的时候,就试着去配置环境和运行第一个action。 而当我在修改项目的web.xml文件加了Struts2的核心控制器(StrutsPrepareAndExecuteFilter)后 , 居然发现项目下的jsp等所有文件都出现了404错误。 然后我就去看了log。发现错误是这样提示的: org.apache.catalina.core.StandardContext filterStart SEVERE: Exception starting filter struts2 java.la

qq_18350493的博客 532

初用Struts2时遇到的几个问题

   首先是选择tomcat时遇到的问题:选择tomcat路径时出错。原因是在学习Struts2前要先安装tomcat,但是我电脑之前没有安装tomcat。 然后工程部署到tomcat时出错, There is no Action mapped for namespace [/] and action name [HelloWorld] ass Tomcat 404 error: The o...

qq_38537775的博客 262

struts2通配符问题

zzdurkjava的专栏 255

关于Struts2的编码问题

在使用Strust2框架中,经常会遇到乱码问题,本人也深受其害,特别是在jsp到action提交过程中。在平时敲代码过程重,也小小地总结了一些经验: 在jsp到action中,有两种提交方式:第一种是get类,一般见于地址栏的拼接传递、超链接以及get类表单,因为在get提交过程中,Struts2是使用服务器默认的编码格式,所以我们要在服务器中设置它的编码格式,比如我们设置编码为“UTF-8”,在...

weixin_43931428的博客 383

struts2 Date转换问题

struts2 Date转换问题

我因技术而充实,技术因我而完美。 114

[java][struts2]struts2核心知识点及问题

3、能否在struts2的Action定义多个业务方法?6、xml进行struts2请求参数校验时,指定方法的校验文件和所有方法校验文件命名规则是什么?4、自定义struts2类型转换器实现实现哪个接口,如何配置局部转换器和全局转换器?11、你是否在struts2开发中 自定义过拦截器,实现什么功能?1、struts2在web.xml配置的Filter叫什么?13、struts2 和 struts1 有何区别?2、struts2的Action有几种书写方式?5、struts2的国际化信息文件有哪几类?

一名不太专业的程序员 3287

SSH2中Struts2乱码问题

在使用Struts2的时候,经常会遇到中文乱码的问题,这让很多人抓狂!其实,Struts2已经处理过了乱码的问题。我们可以再Struts2的配置文件中添加这样一样信息:。 在jsp页面也是这样写,表单使用post方法提交,缺一不可啊!!! 你妹!!!!   在Struts2+Spring+Hibernate的时候,也就是所谓的SSH2框架的时候,经常会出现中文乱码的问题。 在js

Walkingdog 1371
上一篇: MySQL5,5.7,8密码更改
下一篇: Java Eclipse问题总结
不晓得X
博客等级 码龄10年 114粉丝 50原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值