我的项目所有属性都是大写字母开头,对应数据库的字段也是如此。页面中对象的属性也用大写。本来都没事的,今天弄了个上传下载的功能,在下载的页面中,我用了c标签,代码如下:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> 
。。
                    <c:forTokens  var="token" items="${resource.resourceURL}" delims=";" varStatus="status" >
                        <a href="DownLoadResource.action?file=${fn:split(token,'?')[0]}&ResourceID=${resource.resourceID}">${fn:split(token,"?")[1]}</a>
                      <br/>
          </c:forTokens> 
怪就怪在这里,我的实体bean,数据库属性都是大写开头,可是页面中这两个属性用了小写开头反而没事,功能正常。这两个属性一用和后台一致的大写开头页面马上出错,出错信息如下:
exception javax.servlet.ServletException: org.apache.jasper.JasperException: An exception occurred processing JSP page /files/admin/resource/detailDownLoadResourceInfo.jsp at line 164161:                     <tr>
162:      <td height="20" align="center" bgcolor="#FFFFFF">璧勬簮涓嬭浇:</td>
163:                     <td bgcolor="#FFFFFF"><s:if test="resource.resourceURL!=null"></s:if>
164:                     <c:forTokens  var="token" items="${resource.ResourceURL}" delims=";" varStatus="status" >
165:                         <a href="DownLoadResource.action?file=${fn:split(token,'?')[0]}&ResourceID=${resource.ResourceID}">${fn:split(token,"?")[1]}</a>
166:                       <br/>
167:           </c:forTokens>   
Stacktrace:
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:515)
org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:422)
root cause org.apache.jasper.JasperException: An exception occurred processing JSP page /files/admin/resource/detailDownLoadResourceInfo.jsp at line 164161:                     <tr>
162:      <td height="20" align="center" bgcolor="#FFFFFF">璧勬簮涓嬭浇:</td>
163:                     <td bgcolor="#FFFFFF"><s:if test="resource.resourceURL!=null"></s:if>
164:                     <c:forTokens  var="token" items="${resource.ResourceURL}" delims=";" varStatus="status" >
165:                         <a href="DownLoadResource.action?file=${fn:split(token,'?')[0]}&ResourceID=${resource.ResourceID}">${fn:split(token,"?")[1]}</a>
166:                       <br/>
167:           </c:forTokens>   不知是什么问题,请高手指点迷津!

解决方案 »

  1.   

      把你的实体类贴出来看看。 估计问题是: 在页面用el表达式取值,比如你上面写的resource.resourceURL这个,这里的resourceURL是根据你实体类的get方法名字来取的。
    如果是你上面写的那种情况。我估计你的实体方法是
    public String getResourceURL(....)..你看下实体中的这个是不是这样弄的
      

  2.   


    是啊,我的实体:
    private Integer ResourceID;
    private String  ResourceURL;
    public String getResourceURL() {
    return ResourceURL;
    }
    public void setResourceURL(String resourceURL) {
    ResourceURL = resourceURL;
    }
    public Integer getResourceID() {
    return ResourceID;
    }
    public void setResourceID(Integer resourceID) {
    ResourceID = resourceID;
    }
    和我讲讲el取名的原理吧!
      

  3.   

    看看别jsp 变异的servlet哪里出错了。