struts2

noSuchMethodException问题

纵饮孤独 提交于 2020-03-21 17:03:02
  上午遇到一个nosuchMethodException 折腾了一上午发现是jar包冲突引起的。首先发现单独运行没问题,和其他项目整合后就有问题,当时以为代码问题,其实早该想到是jar包冲突造成的。。。。后来在网上找到了一个可能引起该异常的原因,写的恩不错,摘抄过来了。 不久前在学习struts时出现这个错误,在网上搜索了半天,发现答案不一。将其总结如下,以方便大家参考。 1、你有没有试试看 其它的方法能不能用,要是都是这种情况的话,可能是你的Action类没有继承structs里面的DispatchAction 或者其它的类。还有你注意下方法的参数列表,类型顺序要正确才行,是按照以下顺序 的:ActionMapping mapping,ActionForm form ,HttpServletRequest request,HttpServletResponse response 2 、 发现有两种错误可能引起上述异常: 一.Action 类的方法被定义成 private 类型. 如下 Action 中被访问的方法被定义成 private 类型.程序在访问其方法时,会抛出以上异常. 3 、 其实java.lang.NoSuchMethodException这个异常的根本原因有两个:第一,缺少某些 jar 文件;第二,某些 jar 文件有重复。 4 、 使用 struts2

SSH框架的简单示例(执行流程)

半腔热情 提交于 2020-03-21 13:26:57
本文转自一篇博文,感觉通俗易懂,适用于初学j2ee者,与大家一起分享 (一)struts框架部分 1.打开Myeclipse,创建一个web project,项目名称为TestSSH. 2.在web的lib下粘贴struts需要的六个jar包.(jar包在附件里) 3.在web下的web.xml中配置struts的filter. 代码如下: <?xml version="1.0" encoding="UTF-8"?> <web-app 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"> //上面几行代码是从Referenced Libraies下的struts-core-2.0.8.jar下的struts-default.xml中拷贝过来的 <!-- 配置struts开始 --> <filter> <filter-name>myStruts</filter-name> <!--这个过滤器的名字可以随便写-->

Java Web(9)struts 2 validation result设置

烂漫一生 提交于 2020-03-20 21:07:07
3 月,跳不动了?>>> 1. 使用action.validate后,如果有addFieldError后,struts会自动返回一个result为“input”,在官方的文档中是这样子的解释的 Validation Validation also depends on both the validation and workflow interceptors (both are included in the default interceptor stack). The validation interceptor does the validation itself and creates a list of field-specific errors. Theworkflow interceptor checks for the presence of validation errors: if any are found, it returns the "input" result (by default), taking the user back to the form which contained the validation errors. 2. 如果想设定另外一个resultName的话,可我们可以看一下struts是如何设定的,其中执行这一部分功能的拦截器是

struts2 中的 addActionError 、addFieldError、addAction

柔情痞子 提交于 2020-03-20 20:52:55
3 月,跳不动了?>>> 一、 addActionError("错误内容") : Action级别的错误消息 this.addActionError("错误信息1"); this.addActionError("错误信息2"); 显示消息的标签是: <s:actionerror /> 显示全部的 Action级别的错误消息,可以加CSS 二、 addFieldError("字段名","错误信息") 给一个字段(属性)添加错误消息 this.addFieldError("pwd", "错误信息1"); this.addFieldError("pwd", "错误信息2"); 显示消息的方法1: 标签是 :<s:fielderror /> 显示全部的错误消息; 显示消息的方法2: <s:fielderror> <s:param>field1 </s:param> 显示指定的 field1字段的 错误消息 <s:param>field2 </s:param> 显示指定的 field2字段的 错误消息 </s:fielderror> 显示消息的方法3: 如果什么都不写,则默认显示在相应字段上方 三、 addActionMessage("相关信息") 需要在action中重写父类的validate方法,对参数进行校验,如果校验失败。则直接写错误信息 this.addActionMessage(

Struts2之ajax初析

不羁岁月 提交于 2020-03-20 20:07:36
Web2.0的随波逐流,Ajax那是大放异彩,Struts2框架自己整合了对Ajax的原生支持(struts 2.1.7+,之前的版本可以通过 插件 实现),框架的整合只是使得JSON的创建变得异常简单,并且可以简单的融入到Struts2框架中,当然这只是在我们需要JSON的时候才会显得流光溢彩。 首先不谈Struts2的原生支持,我们自己写一个ajax示例,使用异步请求,直接请求action动作: InfoAction.java package cn.codeplus.action; import com.opensymphony.xwork2.ActionSupport; public class InfoAction extends ActionSupport { private static final long serialVersionUID = 1359090410097337654L; public String loadInfo() { return SUCCESS; } } InfoAction仅仅是简单的返回"success"。 index.jsp <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>">

获取Struts2 Fielderror信息

白昼怎懂夜的黑 提交于 2020-03-20 20:04:01
3 月,跳不动了?>>> 1,addFieldError 等方法 都存放在request中 名称为 struts.valueStack (request.getAttribute ("struts.valueStack")) 2,valueStack是STRUTS2的一个堆栈类 获取ActionErrors方法 通过代码可用看到valueStack的结构 也可以去看源码(我快看吐了 狂调父类等 我是看不动了 有耐心的可以去看) 下面的代码直接嵌入到网页中是有效的 <s:if test="hasActionErrors()"> <div class="error" id="errorMessages"> <s:iterator value="actionErrors"> <s:property escape="false"/> -- 这个就是错误信息 </s:iterator> </div> </s:if> 获取FieldErrors 通ActionErrors <s:if test="hasFieldErrors()"> <div class="error" id="errorMessages"> <s:iterator value="fieldErrors"> <s:iterator value="value"> <s:property escape="false"/> </s

SSH框架-unexpected token: * near line 1, column 8 [select * from tb_chaper where course_id = 2];报错解决方法

生来就可爱ヽ(ⅴ<●) 提交于 2020-03-19 05:51:57
SSH项目,访问jsp页面出现报错,控制台显示报错信息: org.springframework.orm.hibernate3.HibernateQueryException: unexpected token: * near line 1, column 8 [select * from tb_chaper where course_id = 2]; nested exception is org.hibernate.hql.ast.QuerySyntaxException: unexpected token: * near line 1, column 8 [select * from tb_chaper where course_id = 2] at org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:657) at org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:412) at org.springframework.orm

(二)搭建SSH环境

无人久伴 提交于 2020-03-18 08:25:45
一、struts 1、添加jar 包 : commons-fileupload-1.3.1.jar,【文件上传相关包】 commons-io-2.2.jar, commons-lang-2.4.jar , commons-lang3-3.2.jar, 【struts对java.lang包的扩展】 freemarker-2.3.19.jar, 【struts的标签模板库jar文件】 ognl-3.0.6.jar, struts2-core-2.x.jar, 【struts2核心功能包】 struts2-spring-plugin-2.x.jar, xwork-core-2.x.jar 【Xwork核心包】 到web-inf/lib目录下。 2、添加struts.xml 到src目录下。可在“struts-2.x\apps\struts2-blank\WEB-INF\classes”下复制。 在struts.xml中添加几个常用属性: 1 <!-- 禁用动态方法访问 --> 2 <constant name="struts.enable.DynamicMethodInvocation" value="false" /> 3 <!-- 配置成开发模式 --> 4 <constant name="struts.devMode" value="true" /> 5 <!--

SSH框架的简化(struts2、spring4、hibernate5)

孤人 提交于 2020-03-18 08:24:19
目的 :     通过对ssh框架有了基础性的学习,本文主要是使用注解的方式来简化ssh框架的代码编写。 注意事项:    1、本文提纲:本文通过一个 新闻管理系统的实例 来简化ssh框架的代码编写,功能包括查询数据库中所有新闻信息,删除某条新闻信息。   2、本项目的搭建环境: Windows 8-64位,Eclipse(开发工具),jdk1.8.0_91,Tomcat 8.0,struts-2.3.30-apps,spring-framework-4.2.2.RELEASE,hibernate-release-5.2.2.Final,mysql数据库 第一步: 在eclipse(开发工具)里创建web项目(项目名称:news),并生成web.xml文件。 第二步: 导入本次项目要使用到的jar包(struts2、spring4、hibernate5和mysql)。 第三步: 在配置文件web.xml配置一个struts2的过滤器和spring监听器。 1 <?xml version="1.0" encoding="UTF-8"?> 2 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation

hibernate,struts2,spring面试题

余生长醉 提交于 2020-03-17 23:01:54
Hibernate工作原理及为什么要用? 原理: 1.读取并解析配置文件 2.读取并解析映射信息,创建SessionFactory 3.打开Sesssion 4.创建事务Transation 5.持久化操作 6.提交事务 7.关闭Session 8.关闭SesstionFactory 为什么要用: 1. 对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码。 2. Hibernate是一个基于JDBC的主流持久化框架,是一个优秀的ORM实现。他很大程度的简化DAO层的编码工作 3. hibernate使用Java反射机制,而不是字节码增强程序来实现透明性。 4. hibernate的性能非常好,因为它是个轻量级框架。映射的灵活性很出色。它支持各种关系数据库,从一对一到多对多的各种复杂关系。 2. Hibernate是如何延迟加载? 1. Hibernate2延迟加载实现:a)实体对象 b)集合(Collection) 2. Hibernate3 提供了属性的延迟加载功能 当Hibernate在查询数据的时候,数据并没有存在与内存中,当程序真正对数据的操作时,对象才存在与内存中,就实现了延迟加载,他节省了服务器的内存开销,从而提高了服务器的性能。 3.Hibernate中怎样实现类之间的关系?(如:一对多、多对多的关系)