IntelliJ 中的 EL 属性不足

Veg*_*ard 3 jsf el intellij-idea

在 intelliJ 中,我收到以下代码的错误消息“EL out of attribute”:

<?xml version="1.0" encoding="UTF-8"?>
<!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">

<h:body>
    <h1>JSF and Spring</h1>
    #{helloBean.hello()}
</h:body>
</html>
Run Code Online (Sandbox Code Playgroud)

显然这是 EL 扩展的非标准用法,但我很难理解我应该如何做到这一点。我的代码工作得很好,但我喜欢使用“正确”的方式,IntelliJ 中的警告可能意味着我遗漏了一些东西。

我应该如何将其编写为“正确”的 JSF 2?

在此处输入图片说明

在此处输入图片说明

wst*_*wst 5

我在这里可能是错的,但out of attribute建议您不要在模板中的任何随机位置使用 EL ,而应仅在标签的属性内使用。

这是豆子:

@ViewScoped
@ManagedBean
public class TestBean {
    private String message = "Hello world";

    public TestBean() {
        System.out.println("TestBean instantiated.");
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }

    public String fetchMsg() {
        return "Msg fetched: " + message;
    }
}
Run Code Online (Sandbox Code Playgroud)

这是 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">
<h:head>
    <title>JSF Tutorial!</title>
</h:head>
<h:body>
    <!--No warning message-->
    <h:outputText value="#{testBean.message}"/>
    <h:outputText value="#{testBean.fetchMsg()}"/>

    <!--Warning message-->
    #{testBean.fetchMsg()}
</h:body>
</html>
Run Code Online (Sandbox Code Playgroud)

使用想法 14。