foreach中的EL问题,

zhuzhuaicai 2016-07-04 08:27:30
下面中versionList是一个类的集合list,为什么我用vers.TbUser(属性)获取不到,显示报错TbUser属性找不到,我采用了下面的get方法最终没有报错?平时不都是对象.属性获取变量吗?为什么这里要用到对象.方法?。。。。。

<c:forEach items="${versionList }" var="vers">
<tr class="">
<td class="hidden-480">${vers.getTbUser() } </td>
</tr>
</c:forEach>
...全文
186 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhuzhuaicai 2016-07-07
  • 打赏
  • 举报
回复
好的谢谢你十分耐心的回复啊
街头小贩 2016-07-06
  • 打赏
  • 举报
回复
为神木不用Spring mvc的Model

	@RequestMapping(value="/photo",method=RequestMethod.GET)
	public String getImageArticle(
			@RequestParam(value="p",required=false,defaultValue="1")Integer page,
			@RequestParam(value="s",required=false,defaultValue="20")Integer pageSize,
			Model model,
			HttpServletRequest request){
		
		String uri=request.getContextPath()+"/article/photo?s="+pageSize;
		ArticleImageQueryList aql=articleService.getAllImage(page, pageSize);
		
		model.addAttribute("photos",aql.getResult());
		//分页代码v1
		IqidoPage ipObj=new IqidoPage(uri,page,pageSize,aql.getTotal());
		ipObj.setMaxPage(10);
		Map<String,String> pO=ipObj.draw(false);
		model.addAttribute("pO", pO);
		model.addAttribute("page",page);
		return "photo";
	}
街头小贩 2016-07-06
  • 打赏
  • 举报
回复
我的环境jdk7+,NetBeans8.1+集成的tomcat8. tomcat的lib文件夹需要有jstl.jar,standard.jar 如果没有到这下: http://repo2.maven.org/maven2/javax/servlet/jstl/ http://repo2.maven.org/maven2/taglibs/standard/
街头小贩 2016-07-06
  • 打赏
  • 举报
回复
我写了个小示例:

package net.javalab.entity;

import java.math.BigDecimal;

/**
 *
 * @author Administrator
 */
public class Product {
    //商品id
    private long id;
    //商品名称
    private String names;
    //商品价格
    private BigDecimal balance;

    public Product(String names, BigDecimal balance) {
        this.names = names;
        this.balance = balance;
    }

    public long getId() {
        return id;
    }

    public void setId(long id) {
        this.id = id;
    }

    public String getNames() {
        return names;
    }

    public void setNames(String names) {
        this.names = names;
    }

    public BigDecimal getBalance() {
        return balance;
    }

    public void setBalance(BigDecimal balance) {
        this.balance = balance;
    }
}

package net.javalab.servlet;

import java.io.IOException;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import net.javalab.entity.Product;

/**
 *
 * @author Administrator
 */
@WebServlet(name = "ProductList", urlPatterns = {"/product"})
public class ProductList extends HttpServlet {



    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
    /**
     * Handles the HTTP <code>GET</code> method.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        List<Product> ps=new ArrayList<>();
        ps.add(new Product("商品A",new BigDecimal("12.00")));
        ps.add(new Product("商品AD",new BigDecimal("120.00")));
        ps.add(new Product("商品AC",new BigDecimal("1200.00")));
        request.setAttribute("psList", ps);
        request.getRequestDispatcher("/product.jsp").forward(request, response);
    }

    /**
     * Returns a short description of the servlet.
     *
     * @return a String containing servlet description
     */
    @Override
    public String getServletInfo() {
        return "Short description";
    }// </editor-fold>

}


<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix ="c" %>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
        <h1>商品列表</h1>
        <c:forEach var="pO" items="${requestScope.psList}">
            <dl>
                <dt>${pO.names}</dt>
                <dd>${pO.balance}</dd>
            </dl>
        </c:forEach>
    </body></html>
街头小贩 2016-07-06
  • 打赏
  • 举报
回复
List<类型> versionList ; 类型中有get方法是吧?贴一下你的代码吧
zhuzhuaicai 2016-07-06
  • 打赏
  • 举报
回复
可是直接用属性就报错了啊,下面是截图
zhuzhuaicai 2016-07-06
  • 打赏
  • 举报
回复
1实体类

package com.fhc.version.entity;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name="TbVersion")
public class Version {
	
	@Id
	@GeneratedValue(strategy=GenerationType.IDENTITY) 
	@Column(length=50)
	private String TbUser;
	public String getTbUser() {
		return TbUser;
	}



	public void setTbUser(String tbUser) {
		this.TbUser = tbUser;
	}
	
	
}
2控制器

@Controller
@RequestMapping("/version")
public class VersionController {
	
	@Resource(name = "versionManager")
	private IVersionManager versionManager;
	
	@RequestMapping("/getAllVersion")
	public String getAllVersion(HttpServletRequest request) {
		
		List<Version> versionList = new ArrayList<Version>();
		versionList = versionManager.getAllVersion();
		for(int i = 0; i < versionList.size(); i++){
			System.out.println(versionList.get(i).toString()
					);
		}

		request.setAttribute("versionList", versionList);
		return "/versionManager";
	}

}
3.jsp

<tbody>
 <c:if test="${!empty versionList }">
	 <c:forEach items="${versionList }" var="vers">
	 <tr class="">	
		 <td class="hidden-480">用户信息表</td>									
		 <td class="hidden-480">${vers.getTbUser() } </td>
	 </tr>
	 </c:forEach>
     </c:if>	
</tbody>
4.<td class="hidden-480">${vers.getTbUser() } </td>为例,如果换成<td class="hidden-480">${vers.TbUser } </td>则控制台报错

严重: Servlet.service() for servlet jsp threw exception
javax.el.PropertyNotFoundException: Property 'TbUser' not found on type com.fhc.version.entity.Version
	at javax.el.BeanELResolver$BeanProperties.get(BeanELResolver.java:259)
	at javax.el.BeanELResolver$BeanProperties.access$300(BeanELResolver.java:236)
	at javax.el.BeanELResolver.property(BeanELResolver.java:346)
	at javax.el.BeanELResolver.getValue(BeanELResolver.java:95)
	at org.apache.jasper.el.JasperELResolver.getValue(JasperELResolver.java:110)
	at org.apache.el.parser.AstValue.getValue(AstValue.java:168)
	at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:188)
	at org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:952)
	at org.apache.jsp.WEB_002dINF.views.versionManager_jsp._jspx_meth_c_005fforEach_005f0(versionManager_jsp.java:1283)
	at org.apache.jsp.WEB_002dINF.views.versionManager_jsp._jspx_meth_c_005fif_005f17(versionManager_jsp.java:1245)
	at org.apache.jsp.WEB_002dINF.views.versionManager_jsp._jspService(versionManager_jsp.java:213)
	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:403)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:347)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:729)
	at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:467)
	at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:392)
	at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:319)
	at org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:238)
	at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:264)
	at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1208)
	at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:992)
	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:939)
	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856)
	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:915)
	at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:811)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:796)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
	at com.opensymphony.sitemesh.webapp.SiteMeshFilter.obtainContent(SiteMeshFilter.java:129)
	at com.opensymphony.sitemesh.webapp.SiteMeshFilter.doFilter(SiteMeshFilter.java:77)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
	at org.springframework.orm.hibernate4.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:152)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:221)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:107)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:504)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:155)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:76)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:934)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:90)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:522)
	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1015)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:646)
	at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:277)
	at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2451)
	at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2440)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
	at java.lang.Thread.run(Thread.java:744)
5.跟你上面写的一样啊,jar包两个都有standard-1.1.2.jar与jstl.jar,关键是有的jsp页面成功了,我这个jsp直接引用属性就报错啊。。。
街头小贩 2016-07-05
  • 打赏
  • 举报
回复
不用写get方法,写属性名即可

<c:forEach items="${versionList }" var="vers">
 <tr class="">	
 <td class="hidden-480">${vers.tbUser } </td>	
 </tr>
 </c:forEach>

10,606

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 其他
社区管理员
  • 其他
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧