在標簽中,我使用 spring:eval 將 Id 傳遞為 ${status.value} ,為什么 spring 使用 parseInt 而不是 parseLong ?ps:${status.value}為submission.Idjsp標簽<spring:bind path="id"> <c:if test="${status.value ne null}"> <spring:eval var="submission" expression="@myService.findById(${status.value})"/>這是我的實體,我不確定實體是否會影響 spring:eval@Entity@Cacheable@Audited@DynamicInsert@DynamicUpdate@DisplayField("testNo")@Table(name = "test_submission")public class Submission extends TenantAuditableDynaObjectEntitySupport {這個錯誤org.springframework.web.servlet.tags.EvalTag.setExpression 這就是我困惑為什么 spring:eval 會去 parseInt ?<spring:eval var="submission" expression="@myService.findById(${status.value})"/>這是我的界面public interface EntityRepository<T extends Entity> extends JpaRepository<T, Long>, DynamicQueryEntityRepository<T> { @QueryHints({ @QueryHint(name = "org.hibernate.cacheable", value = "true") }) T findById(Long id);這就是我的接口擴展 JpaRepository 的內容package org.springframework.data.jpa.repository;我是春天的新手,請告訴我我錯過了哪里設置或其他什么,謝謝。
1 回答

交互式愛情
TA貢獻1712條經驗 獲得超3個贊
看來您的 status.value 是一個字符串。EL 會將內聯數字視為整數,除非您將 L 放在末尾(如在 Java 源代碼中)。最好的解決方案是修復您的狀態對象,將值視為長整型;下一個最好的方法可能是在表達式中顯式插入 parseLong 調用。
添加回答
舉報
0/150
提交
取消