- 浏览: 1092668 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (453)
- Struts2 (30)
- Spring (14)
- iBATIS (6)
- Hibernate (13)
- JVM (5)
- JSON (10)
- Ajax (5)
- Flex (1)
- JavaScript (25)
- PowerDesigner (4)
- 项目管理 (7)
- 数据库 (29)
- 生活 (18)
- 软件应用 (21)
- 无线技术 (2)
- Linux (39)
- TOP开发学习 (2)
- JAVA工具小TIPS (2)
- Java通用 (52)
- XML (3)
- 软件测试 (29)
- Maven (10)
- Jquery (1)
- 正则表达式 (3)
- 应用服务器 (15)
- Android (5)
- linux 和windowx 下 tomcat 设置JVM (8)
- 应用服务器 连接池 (4)
- Linux 后台输出中文乱码 (1)
- Hadoop (28)
- python (2)
- Kafka (7)
- Storm (5)
- Elasticsearch (7)
- fddd (1)
最新评论
-
kafodaote:
Kafka分布式消息系统实战(与JavaScalaHadoop ...
分布式消息系统Kafka初步 -
小灯笼:
LoadRunner性能测试实战课程网盘地址:http://p ...
LoadRunner性能测试应用(八) -
成大大的:
Kafka分布式消息系统实 ...
分布式消息系统Kafka初步 -
hulalayaha2:
Loadrunner性能测试视频教程下载学习:http://p ...
LoadRunner性能测试应用(八) -
993042835:
搞好 谢谢
org.hibernate.exception.ConstraintViolationException: could not delete:
Struts2常见异常与分析处理【不断更新】
1、ognl.OgnlException: target is null for setProperty 异常原因之1
分析处理:
在action中有:
private transient Filmrlspack filmrlspack;
/**
*这里省略了getter、setter方法的代码
*/ 提交数据的表单代码:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<form method="post" name="wmfForm" id="wmfForm" action="">
<span id="wmf-msg"></span>
<table width="700" border="0" cellspacing="0" cellpadding="0" class="sample">
<tr>
<td>影片发行版名称:</td>
<td><input type="text" readonly="readonly" name="Filmrlspack.filmname" value="<%=request.getParameter("filmname") %>" /></td>
<td>业务类型:</td>
<td><input type="hidden" name="businesstypeID" value="<%=request.getParameter("businesstypeID") %>" /><input type="text" name="businesstypeName" readonly="readonly" value="<%=request.getParameter("businesstypeName") %>" /></td>
</tr>
<tr>
<td>出品单位:</td>
<td><input type="text" name="Filmrlspack.manufacture" /></td>
<td>出品年代:</td>
<td><input type="text" name="Filmrlspack.manufacturedate" /></td>
</tr>
<tr>
<td>导演:</td>
<td><input type="text" name="Filmrlspack.directors" /></td>
<td>主演:</td>
<td><input type="text" name="Filmrlspack.leaderact" /></td>
</tr>
<tr>
<td>语种:</td>
<td><input type="text" name="Filmrlspack.langtype" /></td>
<td>是否主语种:</td>
<td><input type="checkbox" name="Filmrlspack.maintype" value="1" checked="checked" /></td>
</tr>
<tr>
<td>影片描述:</td>
<td colspan="3"><textarea rows="5" cols="75" name="Filmrlspack.filmname" ></textarea></td>
</tr>
</table>
</form> 其中很多字段为非必填字段,若什么都不填提交到action中为null,报以上异常。
把action中的
private transient Filmrlspack filmrlspack;
/**
*这里省略了getter、setter方法的代码
*/
改成
private transient Filmrlspack filmrlspack = new Filmrlspack();
/**
*这里省略了getter、setter方法
*/ 就可以了。
2. ognl.OgnlException: target is null for setProperty 异常原因之2
问题是这样的,实体对象一定要有一个无参数的构造函数。否则就会报-------异常:ognl.OgnlException: target is null for setProperty
这个是在页面提交时,通过ognl,先调用无参数的构造函数,然后再调用相应的setter方法去可构造实体对象,没有无参数的构造函数,当然报错了,加上一个无参数的构造函数就OK
3. ognl.OgnlException: target is null for setProperty 异常原因之1补
Struts target is null for setProperty(null, "x", [Ljava.lang.String;@179da9f)
关键字: struts2 struts.devmode
上午工作中出现了这样一个异常:
ognl.OgnlException: target is null for setProperty(null, "x", [Ljava.lang.String;@1a48515)
ognl.OgnlException: target is null for setProperty(null, "y", [Ljava.lang.String;@1d57c7)
好像是我表单里面有多少个提交项后台就抛出多少对这样的异常信息。
可是我的表单里面是没有X,Y这样的提交信息的。。。很是郁闷,而其在前期的开发中也出现过这样的异常,虽然后台抛出这样的异常,但是它不影响程序的正常运行,所以一直也就没管它。今天又苦苦寻觅了许久终于搞定了。。
原来,我提交表单的按钮是如下定义的:
<input type="image" name="Submit" value="提交" onclick="return checkpwd();" src="images/a_tj.gif"/>
只要标签里面的type="image"那么这个带图片的按钮就能提交表单,而且还能在图片上加汉字。原来以为是个好的发现。呵呵,但是今天却发现问题就处在它身上。
当我把提交的按钮换成如下定义:
<input type="submit" name="bu1" onclick="return checkpwd();"/>
好了,一切OK了。没有异常了。
上面的带图片的按钮是美工给的,因此在asp和php应该都没问题,主要是因为Struts2的问。
struts.xml文件里面有这么一个"struts.devMode"。当设为true时,html表单数据中有和action属性匹配不上的参数名时就会提示这样的信息。我试了一下,果然如此,因此在开发过程中将这个属性设为true还是不错的,可以帮我们发现一些可能出现的问题。
这个错误信息主要因为struts.devMode = true引起,因为使用struts在默认配置下对任何提交到action的参数强制需要setter方法,而我们在使用token的时候一般都没有正确的为每一个token设置该参数,为此提交的token信息就会在这里一起一些错误信息,如果需要屏蔽掉这些的话,可以设置webwork.devMode = false来避免这种错误信息的抛出,当然这些错误在程序调试的时候是有用处了,我们可以根据这些信息来删除不必要的参数
Xml代码
<constant name="struts.devMode" value="true"/>
4、Caused by: There is no result type defined for type ‘redirect-action’ mapped with name
分析处理:
在struts.xml中配置如下:
<global-results>
<result name="login" type="redirect-action">redirectLoginAction</result>
</global-results> 报以上异常,用的Struts2包版本为2.1.8.1,后来查看了jar包中的struts-default.xml,发现type中没有redirect-action这一类型,而是变成了redirectAction,把type=”redirect-action”改成type=”redirectAction”就不会有这个异常了。
发表评论
-
SSO单点登录解决方案[转载]
2013-05-01 12:41 8961 什么是单点登陆 ... -
ognl.MethodFailedException: Method "setId" failed for object
2013-04-23 20:27 1534log4jStrutsJavaWeb ... -
response设置编码的三种方式
2013-04-13 22:14 36585在一个utf-8项目中,调用支付宝的及时到账支付接口,本身的 ... -
dynamic web project 生成位置
2013-04-07 13:26 869dynamic web project 生成位置 在wor ... -
Spring的自动任务中调用业务类方法
2012-03-21 15:18 1441Spring 中使用 QuartzJobBean 来进行定 ... -
java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
2011-08-02 12:46 2101我在使用Struts2进行开发的时候老是报下面的错误: 严重: ... -
java.lang.NoSuchMethodException:
2011-01-06 22:46 1384java.lang.NoSuchMethodException ... -
struts2解决中文乱码的问题
2010-12-13 13:45 1079在struts2.0中,解决中文乱码的问题有时候很糟人。以下是 ... -
jquery struts2 IE8 乱码问题
2010-12-03 14:12 1262原因如下: 我们是用struts2框架,str ... -
Struts2中配置action 传参问题
2010-09-28 10:51 1465最近在Struts2中配置action时,经常要在配置文件中给 ... -
org.apache.struts2.json.JSONException:
2010-08-05 17:47 12171org.apache.struts2.json.JSONExc ... -
Struts 2 完成直接输出流到浏览器
2010-04-27 16:58 1851Struts 2 完成直接输出流到浏览器 2008年10月1 ... -
java图片处理 文字水印 图片水印 缩放 补白
2010-04-26 08:56 1056java图片处理 文字水印 图片水印 缩放 补白时间:2009 ... -
在java中集合的遍历是怎样遍历的
2010-04-19 21:05 1000List<String> ... -
破解(百度,网易,新浪,搜狐,QQ空间)图片防盗链 转
2010-04-15 14:37 2099破解(百度,网易,新浪,搜狐,QQ空间)图片防盗链 大家在连 ... -
java伪静态--文件防盗链的实现 转
2010-04-15 14:35 3439java伪静态--文件防盗链的实现 收藏 现在UrlRewri ... -
Lucene基于Java的全文检索引擎简介(转)
2010-04-08 09:13 808ddd -
采用struts2防止重复提交后无法采用request.getParameter("xxx")得到页面隐藏框值解决方案(转)
2010-03-29 14:07 1791采用struts2防止重复提交 ... -
jsp中的basePath和path
2010-03-26 09:15 1712jsp中的basePath和path 2010年01月13日 ... -
Struts2的标签 逻辑标签---IF标签
2010-03-22 21:40 3252Struts2的标签库中,有一 ...
相关推荐
### Struts 常见异常及处理 #### 1. javax.servlet.ServletException: Must specify type attribute if name is specified - **异常描述**:当在 JSP 页面中使用自定义标签时,如果标签中定义了 `name` 属性,则...
三、Struts2常见问题与解决 1. Action跳转问题:如果Action返回的结果类型不正确,可能会导致页面跳转失败。确保Result类型与配置文件中的定义一致。 2. 拦截器异常:当Interceptor中出现异常时,可能导致整个流程...
总结,Struts2拦截器是其核心特性之一,它增强了框架的功能性和灵活性,使得开发者能够更轻松地处理诸如数据校验、事务控制等常见问题。理解和掌握拦截器的原理和用法,对于提升Java Web开发的效率和代码质量具有...
然而,如同任何复杂的框架一样,Struts2在开发和部署过程中可能会遇到一些常见错误。以下是一些典型的问题及相应的解决方案: 1. **异常启动过滤器Struts2:No mapping found for dependency** 这个错误通常是因为...
SSH2_1可能是Struts2与Spring、Hibernate集成的一个项目实例,可能包含了这些框架的配置文件、源代码、以及相关的JAR库。在这个项目中,开发者可能已经配置好了Struts2的动作(Action)和结果页面,Spring的Bean配置...
Struts2提供了一套完整的异常处理机制,允许开发者定义全局或特定Action的异常处理策略。通过配置文件,我们可以指定当特定异常发生时应跳转到哪个错误页面。 通过学习和分析张孝祥提供的这两个Struts2示例源码,...
此外,还可以深入到动态方法调用、类型转换、异常处理等方面,这些都是Struts2处理请求和响应时的重要环节。 在实际开发中,掌握Struts2的源码知识可以帮助我们解决一些难以定位的问题,例如性能瓶颈、错误处理不当...
Struts2内置了一些常见的结果类型,如`dispatcher`(重定向或转发到JSP)、`stream`(用于下载文件)等。在这个项目中,结果类型可能被用来重定向到显示留言列表的页面。 8. **OGNL(Object-Graph Navigation ...
9. **异常处理**:Struts2允许全局或局部地处理应用程序中的异常,提供了一种优雅的方式来管理错误和异常信息。 10. **插件机制**:Struts2有一个强大的插件系统,可以扩展框架的功能,如Spring插件可以方便地与...
第五章可能进一步讲解Struts2的高级特性,如国际化、插件机制、Action的组合以及Struts2与其他框架(如Spring、Hibernate)的整合。国际化支持多语言环境,让应用更具有普适性;Action的组合允许将复杂的业务逻辑...
5. **异常处理**:Struts2提供了全局异常处理机制,可以在这里看到如何配置和使用。 6. **国际化**:可能包含了如何实现多语言支持的示例。 7. **测试**:可能包括JUnit测试类,用于测试Action类的业务逻辑。 ...
1. **日志与异常处理**:拦截器可以记录Action的执行过程,捕获并处理运行时异常,提高程序的健壮性。 2. **性能监控**:通过拦截器可以统计Action的执行时间,进行性能分析。 3. **权限验证**:拦截器可以实现用户...
8. **Ajax支持**:Struts2与dojo、prototype等JavaScript库结合,可以创建部分刷新的交互式Web应用。 在《深入浅出Struts2》一书中,作者可能详细讲解了以下内容: - **基础篇**:介绍Struts2的基本概念、安装和...
4. **异常处理**:Struts2提供了全局异常处理机制,可以统一处理应用程序中的异常,并将其转化为用户友好的错误页面。 5. **国际化**:通过资源包(properties文件),Struts2支持多语言环境,方便不同地区用户的...
这个压缩包中的实例涵盖了Struts2的基础用法和一些高级特性,包括登录注册、数据验证、文件上传下载等常见应用场景。通过学习这些例子,开发者可以了解如何配置Action、编写拦截器、设置结果类型以及如何与视图交互...
下面将详细阐述Struts2的请求处理过程。 1. **URL映射**: 当用户通过浏览器发送一个HTTP请求,请求的URL通常包含了Action的名称。Struts2框架会根据配置的`struts.xml`或`struts-default.xml`等配置文件,将URL...
9. **异常处理**:Struts2提供了一套完善的异常处理机制,可以全局捕获并处理异常,提高程序的健壮性。 10. **国际化与本地化**:Struts2支持多语言环境,通过资源包(Properties文件)实现不同地区的语言切换。...
5. **使用安全拦截器**:利用Struts2的拦截器机制,实现输入验证和异常处理,增强应用安全性。 6. **安全编码实践**:遵循安全编码规范,避免在动态方法调用中使用不安全的变量。 7. **定期审计和扫描**:使用自动...
常见的Interceptor如Params(处理请求参数),Validation(进行表单验证),Exception(异常处理),I18n(国际化)等,它们按照配置的顺序执行,形成一个拦截器链。每个Interceptor执行完毕后可以选择是否将控制权...
此外,实战项目的代码还会涉及到异常处理、国际化、权限控制等常见功能的实现。通过分析和学习这些源码,开发者不仅可以掌握三大框架的基本用法,还能了解如何在实际项目中优化架构,提高代码的可维护性和可扩展性。...