我在if语句中处理多个和/或语句时有点难过。我希望有人可以帮我解决这个问题。 Velocity参考指南似乎没有解决我想要做的事情。
我正在使用我将使用公共字段的应用程序。我必须使用名称来映射公共字段中的ID。我的if语句有两个组件。我有一个OR操作数处理一个字段的两个值。然后我有另一个组件来组合AND语句。
以下是我目前的情况:
#if ($!myid == '21' && $!mytechno == 161)
<B>Technologist:</B> $!MytechData<BR><BR>
<B>Tech2</B> John Smith
#elseif ($!myid == '21' && $!mytechno == 162)
<B>Technologist:</B> $!MytechData<BR><BR>
<B>Tech2</B> Mickey Mouse
#elseif ($!myid == '21' && $!mytechno == 164)
<B>Technologist:</B> $!MytechData<BR><BR>
<B>Tech2</B> Jean Jones)
#else<B>Technologist:</B> $!MytechData
#end
#end
#if ($!myid == '21' && $!mytechno == 161)
<B>Technologist:</B> $!MytechData<BR><BR>
<B>Tech2</B> John Smith
#elseif ($!myid == '21' && $!mytechno == 162)
<B>Technologist:</B> $!MytechData<BR><BR>
<B>Tech2</B> Mickey Mouse
#elseif ($!myid == '21' && $!mytechno == 164)
<B>Technologist:</B> $!MytechData<BR><BR>
<B>Tech2</B> Jean Jones)
#else<B>Technologist:</B> $!MytechData
#end
#end
到目前为止,这是正常的。基本上我正在检查myID的值并确保mytechno必须存在。这样,它将填充我引用的Tech2字段。
虽然这一切都很好,但我需要添加另一个myid值。让我们说myID值是10.我试过这个
在这种情况下会发生的事情是它检查第一个语句并假设它是真的,因为myID与我正在使用的数据匹配。所以,如果mytechno是164,它会显示&#34; John Smith&#34;逻辑无法检查mytechno字段。
我也试过这个
#if ($!myid == '21' || $myid='10' && $!mytechno == 161)
<B>Technologist:</B> $!MytechData<BR><BR>
<B>Tech2</B> John Smith
#elseif ($!myid == '21' || $myid='10' && $!mytechno == 162)
<B>Technologist:</B> $!MytechData<BR><BR>
<B>Tech2</B> Mickey Mouse
#elseif ($!myid == '21 || $myid='10'' && $!mytechno == 164)
<B>Technologist:</B> $!MytechData<BR><BR>
<B>Tech2</B> Jean Jones)
#else<B>Technologist:</B> $!MytechData
#end
#end
那也没有用。有人可以提供任何建议吗?总而言之,它应该是一个结合AND语句的OR语句。如果这是SQL我可以很容易地做到这一点,只是不确定Velocity
答案 0 :(得分:5)
我想我发现了这一点。所以这就是我做的事情
#if (($!myid == '21' || $myid='10') && ($!mytechno == 161)
<B>Technologist:</B> $!MytechData<BR><BR>
<B>Tech2</B> John Smith
#elseif (($!myid == '21' || $myid='10') && ($!mytechno == 162)
<B>Technologist:</B> $!MytechData<BR><BR>
<B>Tech2</B> Mickey Mouse
#elseif (($!myid == '21 || $myid='10'') && ($!mytechno == 164)
<B>Technologist:</B> $!MytechData<BR><BR>
<B>Tech2</B> Jean Jones
#else<B>Technologist:</B> $!MytechData
#end
#end
我还需要进一步测试。但看起来我不得不包括一组额外的括号。
编辑:我不得不在最后拿出那个额外的括号。否则,应用程序本身会显示额外的括号。不知道为什么我必须删除它,因为我认为在封闭数据时必须添加一组额外的括号。至少这是它如何与SQL一起使用。