gpt4 book ai didi

java - 基本 JSF 2 和 tomcat 6 操作结果导航问题

转载 作者:行者123 更新时间:2023-12-01 05:18:58 25 4
gpt4 key购买 nike

我在 tomcat 6 上有一个带有 mojara EL 2.2 的 JSF 2.0,并且在开发过程中它已经工作了一段时间。我最近添加了一个带有登录命令按钮的表单(基本内容),它在 doLogin 操作中检查托管 bean 中的用户名和密码。

public String doLogin(){
FacesMessage message = null;
if((username.equals("user"))&&(password.equals("pass")))
return "testpage.xhtml";
else
message = new FacesMessage("Invalid username or password");

FacesContext.getCurrentInstance().addMessage(null, message);

return null;
}

问题是,在执行 doLogin 并返回 "testpage.xhtml" 后,会显示相同的页面。即使我将所有 xhtml 文件都放在 WebContent 的根目录中。

在tomcat的控制台中我得到:

The ELResolvers for JSF were not registered with the JSP container.

使用 EL 2.2 传递参数工作正常。

我正在将 JSF 与 Facelets 一起使用。

最佳答案

从 JSF 2.0 开始引入隐式导航。在旧的 JSF 1.x 中,您需要定义 <navigation-rule>faces-config.xml或显式调用 ExternalContext#redirect()在 URL 上。

此问题表明您的 JSF 2.0 Web 应用程序正在 JSF 1.x 后备模式下运行。确保您的faces-config.xml声明符合 JSF 2.0 规范版本。

<?xml version="1.0" encoding="UTF-8"?>

<faces-config
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"
version="2.0">

<!-- Config here. -->

</faces-config>

EL 解析器警告与此无关。这是由于在 Tomcat 6 上使用 Glassfish 的 EL 2.2 引起的,您将无法在 .jsp 中使用 EL。页面(如果您只使用 Facelets,这应该不是问题)。如果您想摆脱此警告,请使用 JBoss EL而不是 Glassfish EL。 JBoss EL 是增强的 EL 2.1 实现,而 Glassfish EL 是 EL 2.2 实现。

关于java - 基本 JSF 2 和 tomcat 6 操作结果导航问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10741101/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com