Select -6ren">
gpt4 book ai didi

java - JSP 尝试将 String 转换为 Long

转载 作者:行者123 更新时间:2023-11-30 03:45:09 25 4
gpt4 key购买 nike

我有一个<td>在我的jsp中有一个<spring:bind>标签。

        <td>
<spring:bind path="mailListRequest.offSeason">
<select name="<c:out value="${status.expression}" />" id="<c:out value="${status.expression}" />">
<option value="0">Select</option>
<c:forEach var="t" begin="2" step="1" end="5">
<option value="<c:out value="${t} star"/>" <c:if test="${status.value eq t}"> selected</c:if>><c:out value="${t} star"/>
</option>
</c:forEach>
<option value="boutique hotels">boutique hotels</option>

</select>
</spring:bind>
</td>

"mailListRequest.offSeason"string在服务器端(Java)。这里的目标是迭代 <c:forEach..>循环变量"t" 。因此迭代将是 2,3,4,5;并在 <option value..>我让每次迭代都返回一个带有字符串/单词 star 的值在它前面,因此输出将是 2 star, 3 star, 4 star...

问题:
问题是,每当我选择 <c:forEach> 中的选项之一时,循环或选项 "botique hotels "我的 JSP 中不断出现错误:

错误
javax.servlet.jsp.JspTagException: javax.servlet.jsp.JspException: An error occurred while evaluating custom action attribute "test" with value "${status.value eq t}": An exception occured trying to convert String "2 star" to type "java.lang.Long" (null)

这让我很困惑,因为 "mailListRequest.offSeason"设置为string我的选项中的值是字符串值(我认为)。也许是 <option value="<c:out value="${t} star"/>我格式错误。

最佳答案

据我所知,您选择的值是:

"1 star", "2 star", "3 star", "4 star", "5 star" 

但是在 <c:forEach> 里面循环 t 的值按顺序将是:1,2,3,4,5

所以你的测试是比较字符串 "x star"t ,它是一个 long,并且无法将左操作数转换为右操作数的类型。

您可能想在循环内创建一个辅助变量:

<c:set var="stringVal" value="${t} star" />

然后在测试中使用它:

<c:if test="${status.value eq stringVal}">

关于java - JSP 尝试将 String 转换为 Long,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25931640/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com