3

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

提交按钮<h:commandButton value="Potrdi" action="#{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> ...

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

编辑:

配置文件.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
4

2 回答 2

7

这是一个 EL 语法错误。它说它遇到了一段}时间,它期待列出的标识符或关键字之一。

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

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

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

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


与具体问题无关,您的 JSTL 设置完全是一团糟。我看到了古老的 1.0 版本和原型的 XML 命名空间声明。我强烈建议您清理您在尝试安装 JSTL 时所做的一切,并在仔细阅读我们的 JSTL wiki 页面后重新安装。您最终应该只有一个 JSTL 1.2 JAR 文件,/WEB-INF/lib并且绝对没有松散的 TLD 文件或web.xml.

于 2013-06-11T10:53:42.457 回答
6

添加这个

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

供您web.xml在 JSF 2 中使用注释。

于 2014-04-10T16:49:58.857 回答