返回0和变量之间的随机数范围

时间:2018-01-25 02:59:27

标签: jsp jstl

我有一些JSP在变量中包含一个数字,它看起来像这样

<c:set var="myNumber" value="${fn:length(myItems)}" />

我想要做的是创建另一个变量,该变量给出0和存储在此变量中的数字之间的随机数。我知道你可以使用Math.random和Java来做这件事,但我不确定如何修改它来接受一个变量代替100:

<c:set var="myNumber"><%= java.lang.Math.round(java.lang.Math.random() * 100) %></c:set>

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

您可以在scriptlet中访问JSTL变量值,您可以通过在适当范围的对象上调用getAttribute()方法来实现。 JSTL完全使用范围属性,可以在pagerequestsession范围内使用。 JSTL变量实际上是属性,默认情况下是在页面上下文级别。试试下面的例子。它将在0和变量myNumber的值之间生成一个随机数,然后将随机数设置为myRandomNumber变量。

<c:set var="myNumber" value="${fn:length(myItems)}"/>
<%
    int myNumber = (int)pageContext.getAttribute("myNumber");
    int randomNumber = (int)(java.lang.Math.random() * (myNumber + 1));
    pageContext.setAttribute("randomNumber", randomNumber);
%>
<c:set var="myRandomNumber" value="${randomNumber}"/>