与结合˚FJSF变量代换:loadBundle

我试图创建一个简单的JSF应用程序...与结合˚FJSF变量代换:loadBundle

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>

<%@taglib uri="http://java.sun.com/jsf/html" prefix="h"%>

<%@taglib uri="http://java.sun.com/jsf/core" prefix="f"%>

<%@ page import="java.util.*"%>

<html>

<head>

<title>Login</title>

<f:loadBundle var="Message" basename="bundle.Messages" />

</head>

<body>

<f:view>

<h:form id="loginForm">

<h:message for="loginForm" />

<br />

<h:outputText value="#{Message.username_label}" ></h:outputText>

</h:form>

</f:view>

</body>

</html>

然而,当我尝试在我的浏览器中运行的页面,我得到的值#{Message.username_label}。有人能帮我理解为什么价值没有被替换到页面中吗?

回答:

那么,EL没有得到评估?当web.xml未正确声明符合至少 Servlet 2.4(适用于JSF 1.0/1.1)或2.5(适用于JSF 1.2)并且/或者您的类路径被旧的版本化servlet容器特定库污染时,可能会发生这种情况。由于您使用的是旧JSP而不是其后继Facelets,我敢打赌,您在Servlet 2.5容器(如Tomcat 6.0)上使用JSF 1.2。在这种情况下,你需要确保web.xml声明如下:

<web-app 

xmlns="http://java.sun.com/xml/ns/j2ee"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_5.xsd"

version="2.5"

>

<!-- Your config here -->

</web-app>

此外,你还需要确保你没有任何servletcontainer特定的库,例如servlet-api.jarj2ee.jarjavaee.jarjsp-api.jar,在您的webapp的/WEB-INF/lib文件夹中,或者更糟糕的是,在JRE/lib/ext文件夹中。摆脱它们,它们应该由servletcontainer本身提供,而不是你的webapp。 /WEB-INF/lib文件夹应该只包含JSF库和其他库特定到web应用程序本身。

回答:

这对我很明显。在Java中不是一个遵从的规则,因此核心不能对它进行加密。该编号没有被编译,因为你在这些文件中有它。<>你知道java吗?

以上是 与结合˚FJSF变量代换:loadBundle 的全部内容, 来源链接: utcz.com/qa/263145.html

回到顶部