我想得到类似在 JSTL 中生成的下一个代码
<c:choose>
<c:when test="${random number is even}">
<div class="redlogo">
</c:when>
<c:otherwise>
<div class="greenlogo">
</c:otherwise>
</c:choose>
这个有点难看,但它有效......
<c:set var="rand"><%= java.lang.Math.round(java.lang.Math.random() * 2) %></c:set>
稍后您可以检查${rand mod 2 == 0}
并${rand mod 2 == 1}
获得所需的输出。
您可以用 bean 包装java.util.Random
并使用jsp:useBean
.
package com.example;
import java.util.Random;
public class RandomBean {
private static final Random RANDOM = new Random();
public int getNextInt() {
return RANDOM.nextInt();
}
}
...这样您就可以在您的 JSP 中使用它,如下所示:
<jsp:useBean id="random" class="com.example.RandomBean" scope="application" />
...
<div class="${random.nextInt % 2 == 0 ? 'redlogo' : 'greenlogo'}">
(请注意,我c:choose
在三元运算符的帮助下优化了离开)。
我只想指出,如果您使用的是 EL 2.2(或更高版本),您可以直接调用 EL 中的任何方法(请参阅这个问题),所以可能最快的方法是初始化一个 bean
<jsp:useBean id="random" class="java.util.Random" scope="application" />
然后直接从页面内的java.util.RandomnextInt()
调用或任何其他方法:
${random.nextInt()}
或带参数:
${random.nextInt(10)}
希望能帮助到你!随机标签库
你也可以试试$Math.random函数。