0

reading the following questions (How set charset in a primefaces webapp?), i'm trying to pass as parameter to a managedBean some specials characters (like i.e.: " '´áéíóúÁÉÍÓÚ& "), using the "filterServlet" like says in the answers of the questions it's not working:

JBWEB000065: HTTP Status 500 - /utf8/utf8_test.xhtml @23,153 value="#{testBean.testEncoding(''´áéíóúÁÉÍÓÚ&')}" EL Expression Unbalanced: ... #{testBean.testEncoding(''´áéíóúÁÉÍÓÚ&')}


JBWEB000309: type JBWEB000066: Exception report

JBWEB000068: message /utf8/utf8_test.xhtml @23,153 value="#{testBean.testEncoding(''´áéíóúÁÉÍÓÚ&')}" EL Expression Unbalanced: ... #{testBean.testEncoding(''´áéíóúÁÉÍÓÚ&')}

JBWEB000069: description JBWEB000145: The server encountered an internal error that prevented it from fulfilling this request.

JBWEB000070: exception 
javax.servlet.ServletException: /utf8/utf8_test.xhtml @23,153 value="#{testBean.testEncoding(''´áéíóúÁÉÍÓÚ&')}" EL Expression Unbalanced: ... #{testBean.testEncoding(''´áéíóúÁÉÍÓÚ&')}
    javax.faces.webapp.FacesServlet.service(FacesServlet.java:606)
    cl.gov.minterior.ncforms.managedbeans.UtfFilter.doFilter(UtfFilter.java:39)



JBWEB000071: root cause 
javax.faces.view.facelets.TagAttributeException: /utf8/utf8_test.xhtml @23,153 value="#{testBean.testEncoding(''´áéíóúÁÉÍÓÚ&')}" EL Expression Unbalanced: ... #{testBean.testEncoding(''´áéíóúÁÉÍÓÚ&')}
    com.sun.faces.facelets.tag.TagAttributeImpl.<init>(TagAttributeImpl.java:115)
    com.sun.faces.facelets.compiler.SAXCompiler$CompilationHandler.createAttributes(SAXCompiler.java:133)
    com.sun.faces.facelets.compiler.SAXCompiler$CompilationHandler.startElement(SAXCompiler.java:259)
    org.apache.xerces.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:496)
    org.apache.xerces.parsers.AbstractXMLDocumentParser.emptyElement(AbstractXMLDocumentParser.java:180)
    org.apache.xerces.impl.dtd.XMLDTDValidator.emptyElement(XMLDTDValidator.java:810)
    org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:275)
    org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(XMLDocumentFragmentScannerImpl.java:1653)
    org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:324)
    org.apache.xerces.parsers.XML11Configuration.parse(XML11Configuration.java:845)
    org.apache.xerces.parsers.XML11Configuration.parse(XML11Configuration.java:768)
    org.apache.xerces.parsers.XMLParser.parse(XMLParser.java:108)
    org.apache.xerces.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1196)
    org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:555)
    org.apache.xerces.jaxp.SAXParserImpl.parse(SAXParserImpl.java:289)
    javax.xml.parsers.SAXParser.parse(SAXParser.java:195)
    com.sun.faces.facelets.compiler.SAXCompiler.doCompile(SAXCompiler.java:427)
    com.sun.faces.facelets.compiler.SAXCompiler.doCompile(SAXCompiler.java:403)
    com.sun.faces.facelets.compiler.Compiler.compile(Compiler.java:124)
    com.sun.faces.facelets.impl.DefaultFaceletFactory.createFacelet(DefaultFaceletFactory.java:319)
    com.sun.faces.facelets.impl.DefaultFaceletFactory.access$100(DefaultFaceletFactory.java:92)
    com.sun.faces.facelets.impl.DefaultFaceletFactory$1.newInstance(DefaultFaceletFactory.java:159)
    com.sun.faces.facelets.impl.DefaultFaceletFactory$1.newInstance(DefaultFaceletFactory.java:157)
    com.sun.faces.facelets.impl.DefaultFaceletCache$1.newInstance(DefaultFaceletCache.java:79)
    com.sun.faces.facelets.impl.DefaultFaceletCache$1.newInstance(DefaultFaceletCache.java:74)
    com.sun.faces.util.ExpiringConcurrentCache$1.call(ExpiringConcurrentCache.java:99)
    java.util.concurrent.FutureTask.run(FutureTask.java:266)
    com.sun.faces.util.ExpiringConcurrentCache.get(ExpiringConcurrentCache.java:114)
    com.sun.faces.facelets.impl.DefaultFaceletCache.getFacelet(DefaultFaceletCache.java:117)
    com.sun.faces.facelets.impl.DefaultFaceletCache.getFacelet(DefaultFaceletCache.java:58)
    com.sun.faces.facelets.impl.DefaultFaceletFactory.getFacelet(DefaultFaceletFactory.java:256)
    com.sun.faces.facelets.impl.DefaultFaceletFactory.getFacelet(DefaultFaceletFactory.java:200)
    com.sun.faces.application.view.FaceletViewHandlingStrategy.buildView(FaceletViewHandlingStrategy.java:908)
    com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:99)
    com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
    com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
    javax.faces.webapp.FacesServlet.service(FacesServlet.java:594)

So far, the problems seems to be the " ' " (apos) character, because some way primefaces transform it before it's sended to the managed bean,

The code to call the managed bean is:

<h:outputText value="#{testBean.pruebaEncoding('&#39;&#180;&#225;&#233;&#237;&#243;&#250;&#193;&#201;&#205;&#211;&#218;&amp;')}" />

and the managed bean:

public String pruebaEncoding(String strencoded) {

    FileWriter writer;
    try {
        writer = new FileWriter("/desarrollo/workspaces/workspace-eclipse-mars-test/project/filter.test");

        writer.write(strencoded);

        writer.close();
    } catch (IOException e) {
        e.printStackTrace();
    }

    return strencoded;
}

Thanks for the help

tip: it's important to the application can write the result to a file because another ant script use it to do some stuff()

Community
  • 1
  • 1
Enrique San Martín
  • 2,202
  • 7
  • 30
  • 51
  • several thing: how is this PF related? Nothimg about this in the stacktrace. Does it work if you don't include the PrimeFaces jar. Does it work if you don't include the`'` character – Kukeltje Jul 16 '16 at 07:16
  • Duplicate? http://stackoverflow.com/questions/8898815/how-to-use-both-single-and-double-quotes-inside-jstl-el-expression – Kukeltje Jul 16 '16 at 07:23
  • Thanks for the edit... Did you read the 'duplicate'? – Kukeltje Jul 18 '16 at 13:46

0 Answers0