Java Struts 2“&书信电报;s:if>&引用;标签不';I don’我没有按预期工作

Java Struts 2“&书信电报;s:if>&引用;标签不';I don’我没有按预期工作,java,jsp,struts2,Java,Jsp,Struts2,下面是我的jsp中的一个代码片段,它有一个struts“if”标记 问题在于if标记处的条件总是计算为false,并且表不会显示。我调试了系统,发现该方法返回的值为true。桌子还是没有出现。这是什么原因呢 先谢谢你 test="%(isVetRequired.equals(true) && isVetValidationRequired())" 您必须从方法中提取该变量,并在类中将其声明为private,然后添加Getter 最后,is/get/set由框架自动处理,因此使用

下面是我的jsp中的一个代码片段,它有一个struts“if”标记

问题在于if标记处的条件总是计算为false,并且表不会显示。我调试了系统,发现该方法返回的值为true。桌子还是没有出现。这是什么原因呢

先谢谢你

test="%(isVetRequired.equals(true) && isVetValidationRequired())"
您必须从方法中提取该变量,并在类中将其声明为
private
,然后添加Getter

最后,
is/get/set
由框架自动处理,因此使用

<s:if test="(vetRequired == true && vetValidationRequired == true)">
测试是这样的:

private boolean isVetRequired;
public boolean isVetRequired() { 
   return isVetRequired; 
}

public String execute(){
    isVetRequired = true;
    Fuel fuel = ((Vehicle) getSession().get(
                 SessionConstants.SESSION_VEHICLE)).getFuel();
    fuelId = fuel.getFuelId();
    if (fuelId == 4 || fuelId == 5) {
        isVetRequired = false;
    }
    return "success";
}
<s:if test="vetRequired">
    <!-- STUFF -->
</s:if>

请使布尔变量与其getter方法不同

private boolean isVetRequired; // Wrong way
<s:if test ="vetRequired">
</s:if>
使其
private成为必需的
remove
是变量名中的
,因为它与getter方法冲突

private boolean isVetRequired; // Wrong way
<s:if test ="vetRequired">
</s:if>


现在应该可以了。有关更多信息,请参见。

isVetRequired.equals(布尔值)未提及?isVetRequired.equals(布尔值)为true。action类中的isVetRequired字段被分配为true。是否必须将“%”放在该字段中?。我对JSP和struts还是新手。如果可以的话,请解释一下。当您使用ognl访问对象堆栈上的操作成员时,请使用它。如果您使用的是JSP-EL,请使用“$”@Pathfinder92:。在大多数情况下,这不是强制性的,但如果你不介意的话,就说出来。这篇文章的目的是什么?这是@AndreaLigios答案的简短版本。它只是为了更好地解释以避免错误。
private boolean isVetRequired; // Wrong way
<s:if test ="vetRequired">
</s:if>