困惑了两个多小时的问题,最后发现罪魁祸首竟然是一个
大小写问题:
Items类:
private int mId;
public int getMId() {
return mId;
}
public void setMId(int mId) {
this.mId = mId;
}
action类:
public Items items;
public Items getItems() {
return items;
}
public void setItems(Items items) {
this.items = items;
}
注意:此处get方法最好写上,否则可能会出现丢值的问题。
页面用EL表达式取值:
${items.mId }
控制台错误信息:
严重: Servlet.service() for servlet jsp threw exception
javax.el.PropertyNotFoundException: Property 'mId' not found on type org.zjkh.homepage.dao.pojo.Items
at javax.el.BeanELResolver$BeanProperties.get(BeanELResolver.java:193)
at javax.el.BeanELResolver$BeanProperties.access$400(BeanELResolver.java:170)
at javax.el.BeanELResolver.property(BeanELResolver.java:279)
at javax.el.BeanELResolver.getValue(BeanELResolver.java:60)
at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:53)
网上也有不少网友出现了类似问题,不过说法各种各样。我也尝试了,都失败了。
我的解决办法:
将“mId”改成“mid”,当然get、set方法也要记得改哦,好了,问题就这样解决了!
实在想不通,记得以前这样是可以的,难道JavaBean的规范要求更严格了,不允许开头有俩大写字母?就在我解决这个问题的同时,同事也出现了类似问题,注入DAO时spring配置文件编译时老是提示错误:“not property set method ...”,也折腾了好半天,所有可能的隐患都检查了,都没成功。最终把他的DAO类名改了一下“MMxxxDAO”改成“MxxxDAO”就好了,看来还是跟他的命名规范有关,有时间得好好研究一下它。
分享到:
相关推荐
在这个系统中,Struts2作为核心框架负责处理请求和控制流程,而JavaBean则作为业务逻辑层的实体类,承载着银行业务的数据和行为。 1. **Struts2框架**:Struts2是Apache软件基金会的开源项目,它是基于MVC架构的Web...
其次,JAVABEAN是Java编程中的一个重要概念,它们是符合特定规范的Java类,主要用于数据封装和传输。在这里,两个JAVABEAN可能分别对应于数据库中的两张表,包含了对应表的属性和方法。比如,一个JAVABEAN可能是用户...
JavaBean 的主要优点在于其便利性,它可以方便地进行属性的存取、序列化、以及在各种Java框架中的使用,例如在Spring框架中作为模型对象或者在Struts2中处理表单数据。 **类型转换**在Java中扮演着重要的角色: - ...
JavaBean是Java语言中的一种规范,主要用于封装数据和提供公共访问方法。在Struts中,ActionForm或者ModelDriven接口常用来创建业务对象,这些对象可以映射到多个数据库表。例如,如果有两个关联的表A和B,我们可能...
在Struts框架中,Controller由Struts Action类实现,Model由业务逻辑组件(如JavaBean)组成,View通常由JSP页面负责。Struts通过配置文件定义请求到Action的映射,提供了一种标准的方式来处理HTTP请求并更新Model。...
- JavaBean是一种遵循特定规范的Java类,通常用于封装数据和业务逻辑。在这个例子中,`UserBean`代表业务实体,它包含与用户相关的属性,如`uid`和`pwd`,并且可能包含getter和setter方法。 - 另一个JavaBean `...
JavaBean规范规定了Java类应该如何被设计,以便于在Java环境中被共享和重用。这些类通常具有公共的getter和setter方法,用于暴露和修改属性,以及默认的无参构造函数。在新闻管理系统中,JavaBean可以用来封装新闻的...
在Struts2中,一个Action类通常对应一个特定的业务逻辑,通过配置文件或注解与URL进行映射,接收用户请求并返回结果到视图层。 接着,我们来看Javabean。Javabean是一种遵循特定规范的Java类,主要用于数据封装。在...
JavaBean是Java语言中的一种组件模型,它遵循一定的命名和设计规范,用于封装数据和业务逻辑。在本项目中,JavaBean可能被用作数据对象,存储面包的属性(如名称、价格、库存等),以及处理面包的业务逻辑(如库存...
3. Struts自动将请求参数值绑定到ActionForm的属性上,这得益于JavaBean规范中的getter和setter方法。 4. ActionServlet调用ActionForm的validate()方法进行表单验证。 5. 如果验证成功,ActionServlet将ActionForm...
每个属性都有对应的getter和setter方法,这是JavaBean规范的一部分。 然后,我们创建一个`UserAction`类,它继承自`ActionSupport`,这是Struts2中处理请求的基础类。在`UserAction`中,我们声明一个`Users`类型的...
Struts2提供了一种规范化的请求处理机制,通过Action类和配置文件控制请求流程。JasperReport则依赖于IReport设计工具,允许开发者通过图形化界面创建复杂的报表模板。 整合步骤如下: 1. **添加依赖**:在项目中...
在实际开发中,jsp用于创建动态内容,javabean作为业务对象存储和处理数据,servlet处理请求并控制流程,而Struts则作为一个强大的MVC框架,提供更好的结构和可维护性。通过学习和分析这些源码,开发者可以深入理解...
这通常涉及编写JSP页面(如hello.jsp和success.jsp),定义一个动作类(POJO,遵循JavaBean规范的简单类),并在`struts.xml`中配置这个动作类,指定控制器如何实例化动作类、调用其方法以及根据方法返回值转发到...
本文将深度解析Struts2框架中页面取值的多种方式及核心标签的使用技巧,帮助开发者更高效地进行页面与后台交互。 #### 页面取值的四种常见方法 1. **`<s:property>` 标签**: 此标签用于展示模型中的属性值。如`...
为了使`HelloWorld.jsp`能够访问`MessageStore`对象,`MessageStore`类也需要遵循JavaBean规范,提供`get`和`set`方法。 然后,我们构建视图`HelloWorld.jsp`。此页面主要负责展示数据。通过使用Struts2的标签库,...
在Struts2中,Action类代表Controller,处理用户请求并调用业务逻辑;Model通常由JavaBean或领域对象组成,负责数据存储和业务逻辑实现;View则负责数据展示,通常使用JSP或FreeMarker模板。 2. **配置文件**:...
JavaBean是一种符合特定规范的Java类,通常用于封装数据。它应具有默认的无参构造器,公开的属性(getter和setter方法)以及可选的操作方法。例如: ```java public class User { private String name; private ...
在Struts2中实现单个文件上传是一项常见的任务,它允许用户通过网页选择本地文件并将其上传到服务器。这个“Struts2单个文件上传”示例提供了完整的功能,包括对上传文件大小和类型的限制,确保了服务端的安全性。 ...