我想得到类似JSTL中生成的下一个代码
<c:choose>
<c:when test="${random number is even}">
<div class="redlogo">
</c:when>
<c:otherwise>
<div class="greenlogo">
</c:otherwise>
</c:choose>
Run Code Online (Sandbox Code Playgroud)
Ric*_*mon 16
这个有点难看,但它有效......
<c:set var="rand"><%= java.lang.Math.round(java.lang.Math.random() * 2) %></c:set>
Run Code Online (Sandbox Code Playgroud)
之后您可以检查${rand mod 2 == 0}
并${rand mod 2 == 1}
获得所需的输出.
Bal*_*usC 12
你可以java.util.Random
用bean 包装并使用它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();
}
}
Run Code Online (Sandbox Code Playgroud)
...以便您可以在JSP中使用它,如下所示:
<jsp:useBean id="random" class="com.example.RandomBean" scope="application" />
...
<div class="${random.nextInt % 2 == 0 ? 'redlogo' : 'greenlogo'}">
Run Code Online (Sandbox Code Playgroud)
(请注意,我c:choose
在三元运算符的帮助下对其进行了优化).
bet*_*r07 10
我只想指出,如果你使用EL 2.2(或更高版本),你可以直接调用EL中的任何方法(参见这个问题),所以最快的方法可能是初始化bean
<jsp:useBean id="random" class="java.util.Random" scope="application" />
Run Code Online (Sandbox Code Playgroud)
然后nextInt()
从页面内的java.util.Random直接调用或任何其他方法:
${random.nextInt()}
Run Code Online (Sandbox Code Playgroud)
或带参数:
${random.nextInt(10)}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
23800 次 |
最近记录: |