Exception thrown by getter for property, bean org.apache.struts.taglib.html.BEAN
来源:互联网 发布:淘宝联盟4.3.2安装包 编辑:程序博客网 时间:2024/05/29 02:53
Preface
在浏览本文之前,请确定你是在以下相似environment和condition下遇到相似问题。
Environment:
OS: Windows XP
Language: Java 1.5
Framework: Struts 1.3
IDE: MyEclipse 6.0
Condition:
在jsp page正常,在actionForm中用到object class。
Introduction
本文讲述在actionForm中用到object class时可能会导致的Exception。
Section1 - Problem
HTTP Status 500 -
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: javax.servlet.ServletException: javax.servlet.jsp.JspException: Getter for property countryRegionCode threw exception: java.lang.NullPointerExceptionorg.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:541)org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:417)org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
root cause
javax.servlet.ServletException: javax.servlet.jsp.JspException: Getter for property countryRegionCode threw exception: java.lang.NullPointerExceptionorg.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:850)org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:779)org.apache.jsp.fundInformation.fundHouseSearch_jsp._jspService(fundHouseSearch_jsp.java:365)org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)javax.servlet.http.HttpServlet.service(HttpServlet.java:803)org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
root cause
javax.servlet.jsp.JspException: Getter for property countryRegionCode threw exception: java.lang.NullPointerExceptionorg.apache.struts.taglib.html.SelectTag.calculateMatchValues(SelectTag.java:245)org.apache.struts.taglib.html.SelectTag.doStartTag(SelectTag.java:177)org.apache.jsp.fundInformation.fundHouseSearch_jsp._jspx_meth_html_005fselect_005f0(fundHouseSearch_jsp.java:487)org.apache.jsp.fundInformation.fundHouseSearch_jsp._jspService(fundHouseSearch_jsp.java:197)org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)javax.servlet.http.HttpServlet.service(HttpServlet.java:803)org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.13 logs.
Apache Tomcat/6.0.13
Section 2 - Reason
例如首先在jsp page上有这样一个property
<html:text property="fundHouseID" styleClass="text_general"></html:text>
用其default创建下的actionForm是没有问题的,但从reuse和abstract的aspect角度来说,一般在actionForm中define的private property都是仅仅在jsp page有该property而实际的object class中却没有该property,或者该property需要经过经过action去转换成object class需要的property。所以在jsp page上的property和实际object class的property对应时,在actionForm中不再为jsp page上的property define一个新的property,而是通过getter和setter call object class上的getter和setter来操作property,但是这样就经常容易出现一种错误,因为必须要在actionForm中new一个object class的instance,如果没有new到会碰到以上Exception,如一下Code:
actionForm:
/** fundHouse property */
private FundHouse fundHouse;
/** fundHouseName property */
private String fundHouseID;
/**
* @return the fundHouse
*/
public FundHouse getFundHouse() {
return fundHouse;
}
/**
* @param fundHouse the fundHouse to set
*/
public void setFundHouse(FundHouse fundHouse) {
this.fundHouse = fundHouse;
}
/**
* @return the fundHouseID
*/
public String getFundHouseID() {
return fundHouseID;
}
/**
* @param fundHouseID the fundHouseID to set
*/
public void setFundHouseID(String fundHouseID) {
this.fundHouseID = fundHouseID;
}
Object Class:
private String fundHouseID;
/**
* @return the fundHouseID
*/
public String getFundHouseID() {
return fundHouseID;
}
/**
* @param fundHouseID the fundHouseID to set
*/
public void setFundHouseID(String fundHouseID) {
this.fundHouseID = fundHouseID;
}
Section 3 - Solution
很简单,只是很容易被忽略,一定要new一个object class的instance,对以上的actionFrom fundHouse property修改如下:
private FundHouse fundHouse = new FundHouse();
- Exception thrown by getter for property, bean org.apache.struts.taglib.html.BEAN
- javax.servlet.ServletException: No getter method for property Admin_Name of bean org.apache.struts.taglib.html.BEAN
- No getter method for property suggested of bean org.apache.struts.taglib...解决方法
- 一个错误的解决:Exception thrown by getter for property author of bean buyregister
- Exception thrown by getter for property customer.name of bean book
- 形如Exception thrown by getter for property XXX of bean XXX 或 No getter method for property XXX of bean XX
- Invalid argument looking up property: "bookDTO.bookName" of bean: "org.apache.struts.taglib.html.BEAN"或者No bean specified
- javax.servlet.jsp.JspException: No getter method for property requestId of bean org.apache.struts.ta
- "org.apache.struts.taglib.html.BEAN" in any scope
- struts的异常: Cannot find bean org.apache.struts.taglib.html.BEAN in any scope
- Cannot find bean org.apache.struts.taglib.html.BEAN in any scope异常解决方案
- 导致Cannot find bean org.apache.struts.taglib.html.BEAN 的几种原因分析
- Cannot find bean org.apache.struts.taglib.html.BEAN in any scope
- Cannot find bean: "org.apache.struts.taglib.html.BEAN" in any scope
- Cannot find bean under name org.apache.struts.taglib.html.BEAN
- Cannot find bean org.apache.struts.taglib.html.BEAN in any scope
- Cannot find bean: "org.apache.struts.taglib.html.BEAN" in any scope
- Cannot find bean org.apache.struts.taglib.html.BEAN in any scope
- Oracle 9i 角色列表
- ASP.NET中穿过代理服务器取远程用户真实IP地址
- Java编程那些事儿23—逻辑运算符
- 判断32位整数二进制中1的个数
- [转帖]如何理解C和C++的复杂类型声明
- Exception thrown by getter for property, bean org.apache.struts.taglib.html.BEAN
- 动态添加WEB控件,点控件获取动态添加的控件
- 二进制数字的乘法
- uclinux-2008R1-RC8(bf561)到VDSP5的移植(40):中断优先级
- 救灾帐篷惊现高档小区
- VML简介
- VB.NET及C#调用API
- 序关系计数问题
- 编程是个爱好。