org.apache.el.parser.ParseException:在第1行第3列遇到“”}“”}“”

时间:2013-06-10 14:58:06

标签: jsf el

我有一个jsf,xhtml的web项目..当我登录时,我发送用户名和密码到Prijava.java。

提交按钮<h:commandButton value="Potrdi" action="#{Prijava.prijava}" />

Prijava方法:

public String prijava() throws SQLException{
        Baza baza = new Baza();

            //Gets connection with database
        Connection conn = baza.povezi();

        java.sql.Statement stmt = conn.createStatement();

        ResultSet set = stmt.executeQuery("SELECT up_ime, geslo FROM uporabnik WHERE up_ime ='" +upIme +"'");

        while(set.next()){


            //String baza_up_ime = set.getString("up_ime");
            //String geslo = set.getString("geslo");
            //String uspesno = "";


        }

        return "Profil";

    }

该方法返回字符串“Profil”,因此页面应重定向到Profil.xhtml,我想重定向用户。 当我点击提交按钮时出现此错误:

org.apache.el.parser.ParseException: Encountered " "}" "} "" at line 1, column 3.
Was expecting one of:
    <INTEGER_LITERAL> ...
    <FLOATING_POINT_LITERAL> ...
    <STRING_LITERAL> ...
    "true" ...
    "false" ...
    "null" ...
    "(" ...
    "!" ...
    "not" ...
    "empty" ...
    "-" ...
    <IDENTIFIER> ...

我不知道那是什么以及如何解决它...之前,它有效:/

编辑:

Profil.xhtml

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:x_rt="http://java.sun.com/jstl/xml_rt"
      xmlns:scriptfree="http://jakarta.apache.org/taglibs/standard/scriptfree"
      xmlns:permittedTaglibs="http://jakarta.apache.org/taglibs/standard/permittedTaglibs"
      xmlns:sql="http://java.sun.com/jsp/jstl/sql"
      xmlns:c="http://java.sun.com/jsp/jstl/core"
      xmlns:fmt="http://java.sun.com/jsp/jstl/fmt"
      xmlns:x="http://java.sun.com/jsp/jstl/xml"
      xmlns:fn="http://java.sun.com/jsp/jstl/functions"
      xmlns:fmt_rt="http://java.sun.com/jstl/fmt_rt"
      xmlns:c_rt="http://java.sun.com/jstl/core_rt">

<h:head></h:head> 


<head>
<title>: : Environmental Brand : :</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link href="css/style.css" rel="stylesheet" type="text/css" />

</head>

<body>
<div id="dvmaincontainer">
  <!--main div container starts here-->
  <div id="dvtopcontainer">
    <!-- top container starts here-->
    <div id="dvlogocontainer">
      <!-- logo container starts here-->
      <h1>Najdi obrtnika</h1>
      <h4>Kjer koli in kadarkoli</h4>


      <!-- logo container ends here-->
    </div>
    <div id="dvnavicontainer">
      <!-- navogation div starts here-->
      <img src="images/navi_left.jpg" alt="" />
<div id="tabs1" >
        <ul>
          <!-- CSS Tabs -->
          <li ><a href="Index.xhtml"><span>Domača stran</span></a></li>
          <li id="current"><a href="Profil.xhtml"><span>Profil</span></a></li>
          <li><a href="Zahtevki.xhtml"><span>Zahtevki</span></a></li>
          <li><a href="Iskanje.xhtml"><span>Iskanje</span></a></li>
        </ul>
      </div>
      <img src="images/navi_right.jpg" alt="" />
      <!-- navogation div ends here-->
    </div>
    <!-- top container ends here-->
  </div>
  <div id="dvbodycontainer">




    <!-- body DIV1 starts here-->
    <div id="dvbannerbgcontainer">
      <!-- banner bg div starts here-->

      <p>Profil:</p>

        <f:view>
            Hello <h:outputText value="#{Prijava.upIme}"/>!
        </f:view>

      <table border="1px">
        <tr>
            <td>Ime:
            </td>
            <td>
            <h:inputText value="#{Uporabnik.ime}" />
            <!-- Za change text -->
            <!--  <h:commandButton value="Change text" actionListener="#{}" /> -->
            </td>
        </tr>
        <tr>
            <td>Priimek
            </td>
            <td>
            <h:inputText value="" />
            </td>
        </tr>

      </table>

      <!-- banner bg div ends here-->
    </div>






    <!-- body DIV2 starts here-->
    <div id="dvbannerbgcontainer">
      <!-- banner bg div starts here-->


      <!-- banner bg div ends here-->
    </div>





    <!-- body div ends here-->
  </div>
  <div id="dvfootercontainer">
    <!-- footer div starts here-->
    <div id="foottop">
     <p><span>Copyright  2013 Žiga Sternad, Gašper Sevčnikar, Jurij Valent, Primož Pavlin</span> </p>
      <div class="design"> <a href="#"><img src="images/studio.jpg" alt="Studio7designs" border="0" title="Studio7designs" /></a> </div>
    </div>
    <!-- footer div ends here-->
  </div>
  <!--main div container ends here-->
</div>
</body>

</html>

    enter code here

2 个答案:

答案 0 :(得分:6)

这是EL语法错误。它表示在遇到列出的标识符或关键字之一时遇到了}

这很可能是由以下行引起的:

<!--  <h:commandButton value="Change text" actionListener="#{}" /> -->

#{}确实是一个无效的EL表达式。

请注意,JSF / EL在Web服务器上运行并生成HTML代码,并且它们对HTML注释不敏感(它们是生成的HTML的一部分,而不是JSF / EL代码的一部分)。作为HTML代码解释器的webbrowser是唯一对HTML注释敏感的人。换句话说,HTML注释不会阻止执行封装的JSF标记和EL表​​达式,与您期望的相反。


对于具体问题

无关,您的JSTL设置完全混乱。我正在看到古代1.0版本和原型的XML名称空间声明。我强烈建议您在不小心尝试安装JSTL时清理您所做的一切,并在仔细阅读our JSTL wiki page后重新执行此操作。您最终只能在/WEB-INF/lib中拥有一个JSTL 1.2 JAR文件,并且在web.xml中绝对没有松散的TLD文件或其他声明。

答案 1 :(得分:5)

添加this

<context-param>
    <param-name>facelets.SKIP_COMMENTS</param-name>
    <param-value>true</param-value>
</context-param>

到你的web.xml使用JSF 2中的评论。