开发者

JSF variable substitution with binding f:loadBundle

开发者 https://www.devze.com 2023-03-09 04:33 出处:网络
I am trying to create a simple JSF application... <!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">

I am trying to create a simple JSF application...

<!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"%>

<%@ pa开发者_如何学Pythonge 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>

However, when I try to run the page in my browser, I get the value #{Message.username_label}. Could someone please help me to understand why the value was not substituted into the page?


So, EL doesn't get evaluated? This can happen when the web.xml is not properly declared conform at least Servlet 2.4 (for JSF 1.0/1.1) or 2.5 (for JSF 1.2) and/or your classpath is polluted with old versioned servletcontainer specific libraries.

Since you're using legacy JSP instead of its successor Facelets, I'll bet that you're using JSF 1.2 on a Servlet 2.5 container (such as Tomcat 6.0). In this case, you need to ensure that the web.xml is declared as follows:

<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>

In addition, you also need to ensure that you don't have any servletcontainer specific libraries like servlet-api.jar, j2ee.jar, javaee.jar, jsp-api.jar, etc.. in your webapp's /WEB-INF/lib folder or, worse, in the JRE/lib/ext folder. Get rid of them, they are supposed to be supplied by the servletcontainer itself, not your webapp. The /WEB-INF/lib folder should contain only the JSF libraries and other libraries specific to the webapp itself.


It is obvious to me. is not a complied staememnt in java therfore the foundation of core cant encrypt it. the id is not being compiled because you have it in these <> do you know java?

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号