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: An exception occurred processing JSP page /form/user.jsp at line 13
10: <div style="border: 1px dashed red">${message }</div>
11: <html:form action="/user">
12: username : <html:text property="user.name"/><br/>
13: userpwd : <html:text property="userinfo.pwd"/><br/>
14: <html:submit value="LOGIN"/>
15: </html:form>
16: </body>
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:519)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:410)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
root cause
javax.servlet.ServletException: javax.servlet.jsp.JspException: No getter method for property userinfo.pwd of bean org.apache.struts.taglib.html.BEAN
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:865)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:794)
org.apache.jsp.form.user_jsp._jspService(user_jsp.java:86)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:386)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
root cause
javax.servlet.jsp.JspException: No getter method for property userinfo.pwd of bean org.apache.struts.taglib.html.BEAN
org.apache.struts.taglib.TagUtils.lookup(TagUtils.java:973)
org.apache.struts.taglib.html.BaseFieldTag.prepareValue(BaseFieldTag.java:121)
org.apache.struts.taglib.html.BaseFieldTag.renderInputElement(BaseFieldTag.java:102)
org.apache.struts.taglib.html.BaseFieldTag.doStartTag(BaseFieldTag.java:81)
org.apache.jsp.form.user_jsp._jspx_meth_html_005ftext_005f1(user_jsp.java:162)
org.apache.jsp.form.user_jsp._jspx_meth_html_005fform_005f0(user_jsp.java:112)
org.apache.jsp.form.user_jsp._jspService(user_jsp.java:76)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:386)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.32 logs.
Apache Tomcat/6.0.32
-------------------------------------------------------------------------------------------------
分析了很多原因~
这报错的原因是:ActionForm 的实现中和JSP不统一。因为 userinfo.pwd 会被解析为 getUserinfo.getPwd 这样的嵌套语句,这些和Actionform中是统一的,这是面向对象的一个特征之一~
看来得注意统一性问题,当然,透彻了解Struts 标签库原理才是,最终的办法~
以下是错误出错比对~
这是JSP中的 Struts 标签
11: <html:form action="/user">
12: username : <html:text property="user.name"/><br/>
13: userpwd : <html:text property="userinfo.pwd"/><br/>
14: <html:submit value="LOGIN"/>
15: </html:form>
这是ActionForm 定义
/*
* Generated by MyEclipse Struts
* Template path: templates/java/JavaClass.vtl
*/
package com.yourcompany.struts.form;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import com.entity.Userinfo;
/**
* MyEclipse Struts
* Creation date: 09-20-2011
*
* XDoclet definition:
* @struts.form name="userForm"
*/
public class UserForm extends ActionForm {
/*
* Generated fields
*/
/** user property */
private Userinfo user;
/*
* Generated Methods
*/
/**
* Method validate
* @param mapping
* @param request
* @return ActionErrors
*/
public ActionErrors validate(ActionMapping mapping,
HttpServletRequest request) {
// TODO Auto-generated method stub
return null;
}
/**
* Method reset
* @param mapping
* @param request
*/
public void reset(ActionMapping mapping, HttpServletRequest request) {
// TODO Auto-generated method stub
}
/**
* Returns the user.
* @return Userinfo
*/
public Userinfo getUser() {
return user;
}
/**
* Set the user.
* @param user The user to set
*/
public void setUser(Userinfo user) {
this.user = user;
}
}
分享到:
相关推荐
8. **异常处理**:Struts2提供了一套全面的异常处理机制,能够优雅地处理运行时异常并生成相应的错误页面。 在使用struts-2.3.31-all.zip压缩包时,通常会包含以下组件: - `struts2-core.jar`:框架核心库,包含...
这样做可以确保Struts2框架与JSON插件之间通信的顺畅,减少因版本不兼容而引发的异常。 在开发过程中,合理管理和更新库文件至关重要,因为不同的库版本可能会引入新的特性、修复错误,或者与其他库产生冲突。对于...
7. **异常处理**: Struts2提供了全局的异常处理机制,可以捕获并处理应用程序中的异常,避免了在每个Action中重复的错误处理代码。 在"struts-2.3.8"目录下,通常会包含以下内容: - `struts2-core`: 核心库,包含...
8. **异常处理**:Struts 提供了一套优雅的异常处理机制,可以全局统一处理应用程序中的异常,提高用户体验。 9. **标签库**:Struts 自带了一系列 JSP 标签,如 `<s:form>`、`<s:textfield>` 等,简化了视图层的...
在实际开发中,为了使用这个插件,你需要将`struts2-json-plugin-2.3.8.jar`文件放入项目的类路径(classpath)下,然后在Struts2的配置文件(通常为struts.xml)中启用JSON插件。在Action类中,定义返回JSON数据的...
Struts2是一个基于MVC(Model-View-Controller)设计模式的Java Web应用框架,用于简化Java企业级应用的开发。它是由Apache软件基金会维护,是Struts1的后续版本,提供更强大、更灵活的架构。 1. **Action和结果...
XWork是一个轻量级的框架,提供了许多核心功能,如类型转换、拦截器、异常处理等,这些在Struts2中被广泛应用。因此,为了全面理解Struts2,下载并研究XWork的源码也是非常必要的。 在【标签】中,我们看到了...
10. **异常处理**:Struts2提供了一套强大的异常处理机制,允许开发者自定义错误页面和全局异常处理策略。 在实际项目中,Struts2可以帮助开发者快速搭建web应用,减少代码重复,提高代码可维护性。但随着技术的...
Struts 2是Java开发中的一个开源MVC框架,它基于Model-View-Controller(模型-视图-控制器)设计模式,旨在简化企业级Web应用的开发。此压缩包"struts-2.3.24-all.zip"包含了Struts 2框架的完整版本2.3.24,以及一些...
Struts2是一个基于MVC(Model-View-Controller)设计模式的Java web应用程序框架,它在Web开发领域具有广泛的应用。Struts2的核心是Action类,它负责接收HTTP请求,并通过配置的拦截器链来处理业务逻辑,最终将结果...
在Web开发领域,Struts2以其灵活性、可扩展性和易用性而广受欢迎。这个"struts-2.5.20-all.zip"压缩包包含了Struts2框架的完整版本,版本号为2.5.20,这通常包括框架的核心库、示例程序、文档以及可能的更新和补丁。...
- **Struts-2.5.16.jar**:这是Struts2框架的核心库,包含了Action、Result、Interceptor等核心概念的实现,以及配置管理、异常处理等关键功能。 - **xwork-core-2.5.16.jar**:XWork是Struts2的基础,提供了...
Struts2是一个基于MVC(Model-View-Controller)设计模式的Java web应用程序框架,它极大地简化了Java web开发过程。Struts2的核心是Action,它处理来自客户端的请求,并通过Result来展示响应。在本压缩包"struts-...
这个框架基于Apache软件基金会的Jakarta Struts项目,它提供了丰富的功能来简化开发过程,提高代码的可维护性和可扩展性。Struts 2的核心在于其Action和Result机制,它通过拦截器实现业务逻辑的处理和视图的渲染。 ...
- **异常处理**:Struts2提供了全局的异常处理机制,可以通过全局结果类型来处理未捕获的异常。 总的来说,Struts2.5提供的所有jar包是一个完整的框架环境,允许开发者快速构建和部署Java Web应用程序。理解并掌握...
2. **异常处理**:提供统一的异常处理机制,简化错误和异常的管理。 3. **插件体系**:允许添加自定义插件来扩展框架功能。 4. **配置文件**:基于XML的配置文件(struts-config.xml和web.xml),用于定义Action、...
学习和使用“struts-1.2.9-all”,不仅可以帮助我们掌握Struts 1.x的基础知识,还可以提升我们在Java Web开发中的能力,包括MVC模式的应用、配置文件的编写、异常处理、国际化策略等。同时,对于有志于深入研究和...
Struts 2是一个非常流行的Java Web应用程序框架,它基于Model-View-Controller(MVC)设计模式,旨在简化开发过程并提高代码的可维护性。Struts 2的2.3.7版本被誉为该系列中的佼佼者,因为它集成了众多功能改进和...
6. **异常处理**:Struts 2 提供了全局和局部的异常处理机制。全局异常处理通过 `<global-exception-mappings>` 标签定义,而局部异常处理则在 Action 类中使用 `@ExceptionHandler` 注解。 7. **国际化...
总而言之,Struts 1.2.9是Java Web开发中的一个重要里程碑,它的出现极大地推动了MVC架构在Web领域的普及,虽然现在已被更新的Struts 2和Spring MVC等框架取代,但其设计理念和核心思想仍然对现代Web开发有着深远的...