jsp在spring 3中抛出异常:javax.el.PropertyNotFoundException

时间:2013-08-01 07:32:41

标签: hibernate jsp exception spring-mvc

从实体类中获取属性时出现错误。下面是代码。 这是我的实体类。

 @NamedQueries({
    @NamedQuery(
    name = "findAllProduct",
    //query = "from Product_Catalog prc where prc.id = :productCatalogId"
    query = "from Product_Catalog"
    )
})

@Entity
public class Product_Catalog extends baseEntity.Entity {
    @Id
    @Column(name="Product_Catalog_Id")
    private int productCatalogId ;

    @Column(name="Max_Price")
     private float maxPrice ;

    @Column(name="Min_Price")
     private float minPrice;

//setters and getters below

}

DAO /服务类类似: -

import java.util.List;
import com.ecom.data.entities.product.Product_Catalog;


public interface ProductDAO {

        public  List<Product_Catalog> getAllProduct();
}

DAO实施: -

@Repository
public class ProductDaoImpl implements ProductDAO {

    @Autowired
    private SessionFactory sessionFactory;

        @SuppressWarnings("unchecked")
        @Override
        public  List<Product_Catalog> getAllProduct(){ 
             return this.sessionFactory.getCurrentSession().getNamedQuery("findAllProduct").list();

}
}

服务实施: -

@Service
public class ProductServiceImpl implements ProductService {

    @Autowired
    private ProductDAO productDAO;

    @Override
    @Transactional
    public  List<Product_Catalog> getAllProduct(){ 
     return productDAO.getAllProduct();

    }
}

ProductController类: -

@Controller
public class ProductController {

    @Autowired
    private ProductService productService;

     @RequestMapping(value = "/", method = RequestMethod.GET)
        public String listProducts(ModelMap map)
        {
            map.addAttribute("product", new Product_Catalog());
            map.addAttribute("productList", productService.getAllProduct());

            return "productList";
        }
}

下面是jsp代码,我想只显示Database表中的列表: -

<body>

<h2>Product List</h2>



<h3>Products</h3>
<c:if  test="${!empty productList}">
<table class="data">
<tr>
    <th>Max Price</th>
    <th>Min_Price</th>
    <th>&nbsp;</th>
</tr>
<c:forEach items="${productList}" var="product">
    <tr>

        <td>${product.maxPrice}</td>
        <td>${product.minPrice}</td>
       <%--  <td><a href="delete/${prd.id}">delete</a></td> --%>
    </tr>
</c:forEach>
</table>
</c:if>

</body>
</html>

我在Jboss服务器上部署战争后出现异常。

12:38:33,301 INFO  [org.jboss.web] (MSC service thread 1-2) registering web context: /usermanagement
12:38:33,334 INFO  [org.jboss.as.server.controller] (DeploymentScanner-threads - 2) Deployed "usermanagement.war"
12:38:49,360 INFO  [stdout] (http--127.0.0.1-8080-1) Hibernate: 
12:38:49,361 INFO  [stdout] (http--127.0.0.1-8080-1)     select
12:38:49,361 INFO  [stdout] (http--127.0.0.1-8080-1)         product_ca0_.Product_Catalog_Id as Product1_12_,
12:38:49,361 INFO  [stdout] (http--127.0.0.1-8080-1)         product_ca0_.Aud_Create_Time as Aud2_12_,
12:38:49,362 INFO  [stdout] (http--127.0.0.1-8080-1)         product_ca0_.Aud_Update_Time as Aud3_12_,
12:38:49,362 INFO  [stdout] (http--127.0.0.1-8080-1)         product_ca0_.Is_Active as Is4_12_,
12:38:49,362 INFO  [stdout] (http--127.0.0.1-8080-1)         product_ca0_.Is_Requester_Product as Is5_12_,
12:38:49,362 INFO  [stdout] (http--127.0.0.1-8080-1)         product_ca0_.Max_Price as Max6_12_,
12:38:49,363 INFO  [stdout] (http--127.0.0.1-8080-1)         product_ca0_.Min_Price as Min7_12_,
12:38:49,363 INFO  [stdout] (http--127.0.0.1-8080-1)         product_ca0_.Requirement_Type_Id as Requirem8_12_ 
12:38:49,363 INFO  [stdout] (http--127.0.0.1-8080-1)     from
12:38:49,364 INFO  [stdout] (http--127.0.0.1-8080-1)         Product_Catalog product_ca0_

12:38:49,415 INFO  [stdout] (http--127.0.0.1-8080-1) Hibernate: 
12:38:49,415 INFO  [stdout] (http--127.0.0.1-8080-1)     select
12:38:49,415 INFO  [stdout] (http--127.0.0.1-8080-1)         requiremen0_.Requirement_Type_Id as Requirem1_15_0_,
12:38:49,415 INFO  [stdout] (http--127.0.0.1-8080-1)         requiremen0_.Description as Descript2_15_0_ 
12:38:49,416 INFO  [stdout] (http--127.0.0.1-8080-1)     from
12:38:49,416 INFO  [stdout] (http--127.0.0.1-8080-1)         Requirement_type requiremen0_ 
12:38:49,416 INFO  [stdout] (http--127.0.0.1-8080-1)     where
12:38:49,416 INFO  [stdout] (http--127.0.0.1-8080-1)         requiremen0_.Requirement_Type_Id=?

12:38:49,981 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/usermanagement].[jsp]] (http--127.0.0.1-8080-1) Servlet.service() for servlet jsp threw exception: javax.el.PropertyNotFoundException: The class 'com.ecom.data.entities.product.Product_Catalog' does not have the property 'maxPrice'.
    at javax.el.BeanELResolver.getBeanProperty(BeanELResolver.java:661) [jboss-el-api_2.2_spec-1.0.0.Final.jar:1.0.0.Final]
    at javax.el.BeanELResolver.getValue(BeanELResolver.java:290) [jboss-el-api_2.2_spec-1.0.0.Final.jar:1.0.0.Final]
    at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:175) [jboss-el-api_2.2_spec-1.0.0.Final.jar:1.0.0.Final]
    at org.apache.el.parser.AstValue.getValue(AstValue.java:134) [jbossweb-7.0.1.Final.jar:7.0.2.Final]
    at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:187) [jbossweb-7.0.1.Final.jar:7.0.2.Final]
    at org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:935) [jbossweb-7.0.1.Final.jar:7.0.2.Final]
    at org.apache.jsp.WEB_002dINF.views.productList_jsp._jspx_meth_c_005fforEach_005f0(productList_jsp.java:152)
    at org.apache.jsp.WEB_002dINF.views.productList_jsp._jspx_meth_c_005fif_005f0(productList_jsp.java:114)
    at org.apache.jsp.WEB_002dINF.views.productList_jsp._jspService(productList_jsp.java:76)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) [jbossweb-7.0.1.Final.jar:7.0.2.Final]
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) [jboss-servlet-api_3.0_spec-1.0.0.Final.jar:1.0.0.Final]
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:369) [jbossweb-7.0.1.Final.jar:7.0.2.Final]
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:326) [jbossweb-7.0.1.Final.jar:7.0.2.Final]
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:253) [jbossweb-7.0.1.Final.jar:7.0.2.Final]
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) [jboss-servlet-api_3.0_spec-1.0.0.Final.jar:1.0.0.Final]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:329) [jbossweb-7.0.1.Final.jar:7.0.2.Final]
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248) [jbossweb-7.0.1.Final.jar:7.0.2.Final]
    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:734) [jbossweb-7.0.1.Final.jar:7.0.2.Final]
    at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:541) [jbossweb-7.0.1.Final.jar:7.0.2.Final]
    at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:479) [jbossweb-7.0.1.Final.jar:7.0.2.Final]
    at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:407) [jbossweb-7.0.1.Final.jar:7.0.2.Final]
    at org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:238) [spring-webmvc-3.2.2.RELEASE.jar:]
    at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:264) [spring-webmvc-3.2.2.RELEASE.jar:]
    at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1208) [spring-webmvc-3.2.2.RELEASE.jar:]
    at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:992) [spring-webmvc-3.2.2.RELEASE.jar:]
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:939) [spring-webmvc-3.2.2.RELEASE.jar:]
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856) [spring-webmvc-3.2.2.RELEASE.jar:]
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:936) [spring-webmvc-3.2.2.RELEASE.jar:]
    at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:827) [spring-webmvc-3.2.2.RELEASE.jar:]
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:734) [jboss-servlet-api_3.0_spec-1.0.0.Final.jar:1.0.0.Final]
    at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:812) [spring-webmvc-3.2.2.RELEASE.jar:]
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) [jboss-servlet-api_3.0_spec-1.0.0.Final.jar:1.0.0.Final]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:329) [jbossweb-7.0.1.Final.jar:7.0.2.Final]
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248) [jbossweb-7.0.1.Final.jar:7.0.2.Final]
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275) [jbossweb-7.0.1.Final.jar:7.0.2.Final]
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161) [jbossweb-7.0.1.Final.jar:7.0.2.Final]
    at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:139) [jboss-as-web-7.0.2.Final.jar:7.0.2.Final]
    at org.jboss.as.web.NamingValve.invoke(NamingValve.java:57) [jboss-as-web-7.0.2.Final.jar:7.0.2.Final]
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:154) [jbossweb-7.0.1.Final.jar:7.0.2.Final]
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) [jbossweb-7.0.1.Final.jar:7.0.2.Final]
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) [jbossweb-7.0.1.Final.jar:7.0.2.Final]
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:362) [jbossweb-7.0.1.Final.jar:7.0.2.Final]
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877) [jbossweb-7.0.1.Final.jar:7.0.2.Final]
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:667) [jbossweb-7.0.1.Final.jar:7.0.2.Final]
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:952) [jbossweb-7.0.1.Final.jar:7.0.2.Final]
    at java.lang.Thread.run(Thread.java:662) [:1.6.0_43]

请帮我找出问题,因为我在google搜索后也没有得到任何最终解决方案。在此先感谢所有人。期待着听到你。

1 个答案:

答案 0 :(得分:0)

$ {product.maxPrice}等EL表达式在getter上运行。 确保你有一个:

public float getMaxPrice() {
    return maxPrice;
}

案件是正确的。要找到$ {product.maxPrice}的getter,首字母大写,并且前面加上“get”。

相关问题