2011-05-12 25 views
6

Ben EL ayrıştırma istisnaları alıyorum?Yuvalama EL fonksiyonları

Teşekkürler.

Güncelleme:

view.jsp(86,94) --> JSPG0122E: Unable to parse EL function ${fn:substring(name, fn:length(MYPREFIX), fn:length(name)}). 

at com.ibm.ws.jsp.translator.visitor.validator.ELValidator.validateElFunction(ELValidator.java:500) 
at com.ibm.ws.jsp.translator.visitor.validator.ELValidator.validateELExpression(ELValidator.java:122) 
at com.ibm.ws.jsp.translator.visitor.validator.ELValidator.validateELExpression(ELValidator.java:149) 
at com.ibm.ws.jsp.translator.visitor.validator.ValidateVisitor.validateCustomTagAttribute(ValidateVisitor.java:1752) 
at com.ibm.ws.jsp.translator.visitor.validator.ValidateVisitor.validateCustomTagAttributeValues(ValidateVisitor.java:1400) 
at com.ibm.ws.jsp.translator.visitor.validator.ValidateVisitor.visitCustomTagStart(ValidateVisitor.java:294) 
at com.ibm.ws.jsp.translator.visitor.JspVisitor.processJspElement(JspVisitor.java:366) 
at com.ibm.ws.jsp.translator.visitor.JspVisitor.processChildren(JspVisitor.java:419) 
at com.ibm.ws.jsp.translator.visitor.JspVisitor.processJspElement(JspVisitor.java:369) 
at com.ibm.ws.jsp.translator.visitor.JspVisitor.processChildren(JspVisitor.java:419) 
at com.ibm.ws.jsp.translator.visitor.JspVisitor.processJspElement(JspVisitor.java:369) 
at com.ibm.ws.jsp.translator.visitor.JspVisitor.processChildren(JspVisitor.java:419) 
at com.ibm.ws.jsp.translator.visitor.JspVisitor.processJspElement(JspVisitor.java:369) 
at com.ibm.ws.jsp.translator.visitor.JspVisitor.processChildren(JspVisitor.java:419) 
at com.ibm.ws.jsp.translator.visitor.JspVisitor.processJspElement(JspVisitor.java:234) 
at com.ibm.ws.jsp.translator.visitor.JspVisitor.visit(JspVisitor.java:216) 
at com.ibm.ws.jsp.translator.JspTranslator.processVisitors(JspTranslator.java:127) 
+0

İyi görünüyor, sadece Tomcat 7.0.12 üzerinde test edildi ve iyi çalışıyor. Tam olarak ne istisna alıyorsunuz? Muhtemelen '$ {name}' bir 'String' değildir. – BalusC

+0

İstisnayı yukarıdaki orijinal gönderime ekledim. – user751383

cevap

2

Aaahh, bu Websphere var ... Uzun zaman önce geçen için kullandım ve ben bir çalışan yok olmuştur: Bu istisna değildir

burada, işte karanlıkta bir ateş var:

deneyin ayrı <c:set> s içine yuvalanmış işlev planı ayrı ve daha sonra yerine ifadesinde bunları başvuru:

<c:set var="begin" value="${fn:length(MYPREFIX)}" /> 
<c:forEach var="name" items="${data.names}" varStatus="status"> 
    <c:set var="end" valur="${fn:length(name)}" /> 
    <c:set var="reducedName" value="${fn:substring(name, begin, end)}"/> 
    ... 
</c:forEach> 

Orijinal kodun Tomcat 7.0.12'de benim için uygun olduğunu unutmayın. Dolayısıyla, yer varsa, Websphere'i daha yeni bir sürüme geçirmeyi düşünün. Daha sonraki sürümlerde düzeltilmiş olabilir.

+0

Nihayet buldum: ithalat <% = InternalConstants.MYPREFIX%> MYPREFIX EL başarısız olmasına neden bir dize değildi , çözülemedi. Hatalı ithalat için bir istisna almadığım garip (hm, belki de nezaret ettim) ... – user751383