为什么Java变量无法在IF语句中解析?

时间:2014-02-17 14:09:26

标签: java jsp

<%
    if (group.isControlPanel()) {
        String cssClassContainer = "container";
    } else {
        String cssClassContainer = "container-fluid";
    }
%>

我在If Statement:An error occurred at line: 40 in the jsp file: /page.jsp__cssClassContainer cannot be resolved to a variable.

中定义变量时出现编译错误

当我删除I​​f Statement时,我没有收到任何错误:

<%
        String cssClassContainer = "container";
%>

为什么?

任何帮助表示赞赏!非常感谢你!

1 个答案:

答案 0 :(得分:9)

您限制了变量cssClassContainer

的范围

你可能想要

<%
    String cssClassContainer=""; // or null
    if (group.isControlPanel()) {
         cssClassContainer = "container";
    } else {
         cssClassContainer = "container-fluid";
    }
%>

您的代码现在发生的变量cssClassContainer的范围仅限于{}

除此之外你无法访问。

以上条件可以替换为(Skeets magic :)),

 String cssClassContainer = group.isControlPanel()? "container" : "container-fluid";