延迟的 EL 表达式是不允许的,因为 deferredSyntaxAllowedAsLiteral 是 false

The deferred EL expression is not allowed, since deferredSyntaxAllowedAsLiteral is false

我在执行 JSF 页面时遇到以下错误。

The deferred EL expression is not allowed since deferredSyntaxAllowedAsLiteral is false.

<h:inputText id="username" value="#{login.username}"/>

因此我将文件扩展名从 login.jsp 更改为 login.xhtml

此文件和许多其他文件在 <% ..%> 中包含大量 Java 代码,那么保持 Java 代码完整的最佳方法是什么,我想要我的遗留应用程序部署到 Weblogic 11g (10.1.3.6),更改所有 JSP 脚本是一项艰巨的任务,不会这样做,因为这是一个遗留应用程序。

web.xml

 <?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://java.sun.com/xml/ns/javaee"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    version="2.5">
    <display-name>prod</display-name>
    <servlet>
        <servlet-name>Faces Servlet</servlet-name>
        <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet>
        <servlet-name>Login</servlet-name>
        <servlet-class>test.app.Login</servlet-class>
    </servlet>
    <servlet>
        <servlet-name>DBervice</servlet-name>
        <servlet-class>test.app.common.DBService</servlet-class>
    </servlet>
    <servlet>
        <servlet-name>LAPService</servlet-name>
        <servlet-class>test.app.LAPService</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>/faces/*</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>Login</servlet-name>
        <url-pattern>/login</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>DBervice</servlet-name>
        <url-pattern>/dbservice</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>LAPService</servlet-name>

听起来你应该简单地设置:

<%@ page deferredSyntaxAllowedAsLiteral="true" %> 

在您的所有 JSP 页面中。它 should work 与 Weblogic 10.3。您可能可以在每个 JSP.

中编写某种 sed 调用来执行此操作